Articles of llvm

程序加载/执行

我是编译器的初学者,但是我非常有兴趣了解一个程序是如何构造的(二进制)以及如何读取和加载到内存中执行。 你们build议我阅读哪些电子书/书籍/教程以便快速入门?

在Linux上为clang构buildlibc ++的方法是什么?

编辑/更新/注意:只要让clang使用libstdc ++。 到目前为止,我一直在为我工作得很好。 =============================== 在过去,我可以通过cmake做些事情,但是刚才我在http://llvm.org/svn/llvm-project/libcxx/trunk项目树的lib目录中发现了一个buildit脚本。 这个buildit脚本似乎不使用libsupc++ ,这是我以前使用的cmake方法。 例如, 本指南显示了一个cmake咒语来为libc++生成一个makefile文件,该文件将能够处理编译和安装。 我的问题是生成LLVM- libc++这些不同的方法和应该使用哪一个的区别是什么? 他们会有不同的performance吗? buildit脚本似乎没有提供任何安装帮助。 有没有方向如何正确安装图书馆? 用我之前用cmake构build的libc ++,我必须总是在链接器标志(和-L的path)中添加-lc++ ,这在我的OS X makefiles中是不必要的。

LLVM超出源代码构build:不支持可加载模块(在Linux上)

我几周前编译安装了debian上的LLVM(configure&make),现在尝试从源代码编译llvm-mutate pass 。 AFAICC,llvm-mutate在源代码构build指令之外的cmake 之后 。 当试图build立llvm-mutate mkdir build cd build cmake -DCMAKE_MODULE_PATH=/usr/local/share/llvm/cmake ../ 我得到: – 忽略突变 – 此平台不支持可加载模块。 嗯? opt和可加载的通行证(在llvm_trunk / build / Debug + Asserts / lib / xxx.so中)存在并且工作(已经使用configure&make,而不是cmake编译)。 所以这个问题似乎与cmake有关? 有人遇到了这样的问题,使用cygwin的win如何: 在这里 任何想法? Thx亚历克斯

是否有用于Linux的Clang mingw交叉编译器?

在Linux中,特别是在Debian或Ubuntu上,预先打包的Mingw交叉编译器可以生成Windows EXE。 但有没有类似的交叉编译器使用Clang而不是GCC? (或者如何build立这样一个野兽的指示。)

生成LLVM C ++ API代码作为后端

在线LLVM演示页面可以select从源代码生成LLVM C ++ API代码作为后端。 但是,该演示页面现在已禁用。 我想知道如何使用可用的LLVM工具自己做。 我尝试了以下 clang++ -c -emit-llvm input.cpp -o input.ll llc -march=cpp -o input.ll.cpp input.ll 这给出了以下错误 llc: error: invalid target 'cpp'. 我正在使用LLVM / Clang版本3.2。

在Windows上铿锵

首先,我遵循了“入门:build立和运行Clang” 。 特别是,我已经根据“使用Visual Studio”部分构build它。 换句话说,我已经使用Visual Studio 2010构build了它。 其次,我已经手动设置包含和库pathMinGW分布: 我试图编译的简单程序: #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } 我从编译器得到以下反馈: In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iostream:39: In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ostream:39: In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ios:38: In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iosfwd:41: In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\bits/postypes.h:41: C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:144:11: error: no […]

构buildLLVM失败,并显示空错误消息

我正在尝试构buildLLVM 3.1和Clang 3.1。 我遵循Clang网站上的“入门指南” – 在必要的地方检查存储库,获取Python等。 如果我安装了Python 3.3,它会给出一个Python语义错误 – from main import main主导from main import main ,没有模块叫做main 。 如果我有Python 2.7安装,它给 CMake Error at CMakeLists.txt:307 (message): Unexpected failure executing llvm-build: Configuring incomplete, errors occurred! 这是最无助的。 有什么build议我可以在Windows上构buildLLVM和Clang,或至less尝试确定问题是什么? 就像一个笔记一样,我正试图用Visual Studio 2012构build,而CMake正式支持它,但是在创buildLLVM 3.1和Clang 3.1时没有发布。 编辑:这是从CMakeLists.txt必要的行 message(STATUS "Constructing LLVMBuild project information") execute_process( COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL} –native-target "${LLVM_NATIVE_ARCH}" –enable-targets "${LLVM_TARGETS_TO_BUILD}" –enable-optional-components […]

在Windows 10上运行LLVM传递在terminal没有输出?

我有来自LLVM.org的示例代码: #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { struct Hello : public FunctionPass { static char ID; Hello() : FunctionPass(ID) {} bool runOnFunction(Function &F) override { errs() << "Hello: "; errs().write_escaped(F.getName()) << '\n'; return false; } }; // end of struct Hello } // end of anonymous namespace char Hello::ID = […]