草庐IT

c++ - LLVM JIT 段错误。我究竟做错了什么?

这可能是一些基本的东西,因为我刚刚开始学习LLVM..以下创建一个阶乘函数并尝试git并执行它(我知道生成的func是正确的,因为我能够静态编译和执行它)。但是我在执行函数时遇到段错误(在EE->runFunction(TheF,Args)中)#include"llvm/Module.h"#include"llvm/Function.h"#include"llvm/PassManager.h"#include"llvm/CallingConv.h"#include"llvm/Analysis/Verifier.h"#include"llvm/Assembly/PrintModulePa

c++ - 在 C++ 11 中使用 Homebrew 软件、gcc 和 llvm

这是我的问题:我想使用gcc或clang提供的C++11功能。但是,我有这些要求:我使用的是Mac我依赖于Homebrew软件提供的一堆库(真的不想自己编译它们)。特别是OSG,它本身依赖于大量其他库。还有提升,虽然我总是可以自己编译。Homebrew似乎只想使用gcc(如果我错了,请纠正我)。我找不到任何切换到LLVM的选项。虽然我知道这可能是由于并非所有库都与LLVM兼容,但这对于那些兼容的库来说仍然是一个不错的功能。gccmac上预装的gcc版本是4.2。gcc4.2没有所需的c++11功能。我已经通过Homebrew软件安装了4.7,但是搜索如何设置Homebrew软件来使用它

c++ - XCode 4 中有哪些版本的 gcc、llvm 和 clang?

由于某种原因,这些信息很难获得。我们想开始使用大多数编译器中提供的一些C++0x功能。但是XCode3让我们有点退缩,因为它只提供GCC4.2和LLVM1.5。我们需要支持的所有其他平台要么已经具有初步支持C++0x功能的编译器,要么具有安装/升级编译器的相对轻松的方法。XCode4预览版可用,但仅限Mac或iOS开发者计划中的用户使用。 最佳答案 Xcode4GMgccversion4.2.1(AppleInc.build5666)(dot3)Appleclangversion2.0(tags/Apple/clang-134)(b

c++ - 使用LLVM检测C/C++代码

我刚刚阅读了有关LLVM项目的信息,该项目可用于使用LLVM前端的分析器Clang对C/C++代码进行静态分析。我想知道是否可以使用LLVM在源代码中提取对内存的所有访问(变量,本地以及全局)。LLVM中是否有任何内置库可供我用来提取此信息。如果不是,请建议我如何编写函数以完成此操作。(现有源代码,引用,教程,示例...)我想过的是,我会先将源代码转换为LLVMbc,然后对其进行分析以进行分析,但不知道该怎么做。我试图弄清楚自己应该使用哪种IR(Clang的抽象语法树(AST)或LLVM的SSA中间表示(IR)。),但实际上无法弄清楚要使用哪个IR。这就是我想要做的。给定任何C/C++

c++ - STL/Boost 相当于 LLVM SmallVector?

我一直在尝试查看在有许多小数据vector时是否可以优化案例。在我的用例中,这些vector可能有100,000多个,因此vector存储的大小至关重要。每个有时可能只有1或2个元素,但在许多情况下可能会增长更大的容量。我尝试过使用简单的std::vector,但这非常慢,因为它在堆上分配了N个小缓冲区,这会浪费内存并且在时间紧迫的环境中花费的时间太长。实际上,vector上的小缓冲区优化(SBO)似乎是一个可行的解决方案。这意味着使用vector的内部(即堆栈)数据,直到超过它,然后才需要使用堆。我偶然发现了LLVMSmallVector,它似乎正是这样做的。然而,它似乎在LLVM框

c++ - LLVM 项目的示例 CMakeLists.txt 文件

我很难让LLVM参与一个新项目。我尝试了http://old.nabble.com/CMake-sample-project--td28871124.html中的多个CMakeLists.txt示例并且花了很多时间。我可以完美地构建LLVM和示例,但我想要一个不在LLVM文件夹内的项目。我在Windows7上使用VisualStudio2010。现在我的设置是这样的:root-CMakeLists.txt(1)main-CMakeLists.txt(2)-main.cpp(anexactcopyoftheFibonacciexample)(1)cmake_minimum_require

c++ - 我可以将现有方法绑定(bind)到 LLVM 函数* 并从 JIT 编译的代码中使用它吗?

我正在玩弄LLVMC++API。我想JIT编译代码并运行它。但是,我需要从所述JIT编译代码中调用C++方法。通常,LLVM将方法调用视为函数调用,并将对象指针作为第一个参数传递,因此调用应该不是问题。真正的问题是将该函数放入LLVM。据我所知,可以对函数使用外部链接并通过其名称获取它。问题是,因为它是一个C++方法,所以它的名字会被弄乱,所以我不认为这样做是个好主意。制作FunctionType对象非常简单。但是从那里,我如何通知LLVM我的方法并为其获取Function对象? 最佳答案 来自LLVM邮件列表的家伙是helpful

java - 是否有 llvm java 前端可以将 java 源代码转换为 llvm 的中间形式?

根据我的阅读,有一个llvm程序可以将java字节码转换为llvm的中间形式,称为class2llvm。我的问题是,我如何访问它。我必须安装什么前端才能访问它。VMkit是他们的JVM实现,但我正在寻找如何使用llvm编译java源代码,而不是如何运行它。 最佳答案 Java前端将Java字节码(.class文件)转换为LLVM字节码。看看这个链接:https://llvm.org/svn/llvm-project/java/trunk/docs/java-frontend.txt 关于

android - llvm-rs-cc 缺少 flutter

我是Flutter的新手。在安装sdk后尝试运行flutter项目时,我得到Llvm-rs-cc丢失,但flutter医生没有检测到任何问题。我正在使用ubuntu18.04和androidstudio项目(kotlin)运行没有任何问题。谢谢! 最佳答案 我遇到了同样的问题,我是这样解决的导航到Home/User/Android/Sdk/build-tools。从那里删除所有文件夹。转到SDKManager并下载最新版本的AndroidSDK构建工具。注意:您可以在SDKManager的第二个选项卡中找到AndroidSDK构建工

android - 错误 : No toolchains found in the NDK toolchains folder for ABI with prefix: llvm

我想使用gradel(gradlewcleanbuild)编译一个开源的android项目(Netguard)但是我遇到了这个错误:Aproblemoccurredconfiguringproject':app'.>Exceptionthrownwhileexecutingmodelrule:NdkComponentModelPlugin.Rules#createToolchains>NotoolchainsfoundintheNDKtoolchainsfolderforABIwithprefix:llvm我搜索了但没有发现任何帮助。这是主要的build.gradle:buildscr