草庐IT

llvm-cov

全部标签

c++ - 如何在 Windows 上使用 GCC 4 构建 LLVM?

我已经能够使用MinGWGCC3.4.5构建LLVM2.6(llvm-2.6.tar.gz包)。我没有正确测试,但它似乎可以工作。问题是,我有自己的库,它们不使用GCC3构建,但在GCC4中可以正常工作(模板问题)。我相信MinGW的第一个官方GCC4版本是GCC4.4.0。编辑整洁-“试过这个试过那个”信息中的所有有用信息现在都在答案中。编辑这个问题/答案的大部分对于LLVM2.7来说都是多余的-标准配置,使例程在MinGW中正常工作,没有任何黑客或变通方法。 最佳答案 如果一开始你没有成功...我现在可以使用MinGWGCC4.

c++ - 是否可以在 llvm 中为用户定义的传递添加参数

现在我们正在执行llvm的分析过程,紧随thistutorial。.并且需要向插件传递一个额外的参数,如下所示:opt-load/path/to/myplugin.so-mypass-mypass_optioninput.bc但是我没有找到任何手册告诉我该怎么做。所以我想知道在实践中是否可能。提前致谢。 最佳答案 您应该使用CommandLineLLVM内置的库。基本上,您只需将pass的.cpp文件放在顶部即可:#include"llvm/Support/CommandLine.h"staticcl::optInputFilena

c++ - 是否可以在 llvm 中为用户定义的传递添加参数

现在我们正在执行llvm的分析过程,紧随thistutorial。.并且需要向插件传递一个额外的参数,如下所示:opt-load/path/to/myplugin.so-mypass-mypass_optioninput.bc但是我没有找到任何手册告诉我该怎么做。所以我想知道在实践中是否可能。提前致谢。 最佳答案 您应该使用CommandLineLLVM内置的库。基本上,您只需将pass的.cpp文件放在顶部即可:#include"llvm/Support/CommandLine.h"staticcl::optInputFilena

c++ - LLVM 位码跨平台

只是为了确定:LLVM位码是跨平台的吗?我的意思是,生成的IR(“.bc”)文件可以在各种平台上分发和解释/JITed吗?如果是这样,Clang如何将C++转换为平台无关代码?而在C++语言本身中,会在实际编译之前使用预处理器来确定其目标平台。 最佳答案 LLVMIR可以是跨平台的,除了其他人列出的明显异常(exception)。但是,这并不意味着Clang会生成跨平台代码。正如您所注意到的,预处理器几乎普遍用于仅将部分代码传递给C/C++编译器,具体取决于平台。即使在用户代码中没有这样做,许多系统头文件也包含一两个平台特定的,例如

c++ - LLVM 位码跨平台

只是为了确定:LLVM位码是跨平台的吗?我的意思是,生成的IR(“.bc”)文件可以在各种平台上分发和解释/JITed吗?如果是这样,Clang如何将C++转换为平台无关代码?而在C++语言本身中,会在实际编译之前使用预处理器来确定其目标平台。 最佳答案 LLVMIR可以是跨平台的,除了其他人列出的明显异常(exception)。但是,这并不意味着Clang会生成跨平台代码。正如您所注意到的,预处理器几乎普遍用于仅将部分代码传递给C/C++编译器,具体取决于平台。即使在用户代码中没有这样做,许多系统头文件也包含一两个平台特定的,例如

c++ - LLVM 编译器 2.0 : Warning with "using namespace std;"

在使用LLVM2.0的Xcode中,当我将行usingnamespacestd;放入我的C++代码中时,我收到以下警告:SemanticIssueUsingdirectivereferstoimplicitly-definednamespace'std'有没有办法解决这个问题?为什么会发出这样的警告? 最佳答案 您是否包含任何标准头文件?否则编译器不知道namespacestd.请发布更多代码以澄清。 关于c++-LLVM编译器2.0:Warningwith"usingnamespace

c++ - LLVM 编译器 2.0 : Warning with "using namespace std;"

在使用LLVM2.0的Xcode中,当我将行usingnamespacestd;放入我的C++代码中时,我收到以下警告:SemanticIssueUsingdirectivereferstoimplicitly-definednamespace'std'有没有办法解决这个问题?为什么会发出这样的警告? 最佳答案 您是否包含任何标准头文件?否则编译器不知道namespacestd.请发布更多代码以澄清。 关于c++-LLVM编译器2.0:Warningwith"usingnamespace

c++ - 使用 LLVM 进行静态源代码分析

我最近发现了LLVM(lowlevelvirtualmachine)项目,据我所知,它可用于对源代码进行静态分析。我想知道是否可以在程序中通过函数指针(找到调用者函数和被调用者函数)提取不同的函数调用。我可以在网站上找到这类信息,所以如果你能告诉我这样的库是否已经存在于LLVM中,或者你能给我指出如何自己构建它的好方向(现有源代码、引用、教程、示例...)。编辑:通过我的分析,我实际上想提取调用者/被调用者函数调用。在函数指针的情况下,我想返回一组可能的被调用者。调用者和被调用者都必须在源代码中定义(这不包括库中的第三方函数)。 最佳答案

c++ - 使用 LLVM 进行静态源代码分析

我最近发现了LLVM(lowlevelvirtualmachine)项目,据我所知,它可用于对源代码进行静态分析。我想知道是否可以在程序中通过函数指针(找到调用者函数和被调用者函数)提取不同的函数调用。我可以在网站上找到这类信息,所以如果你能告诉我这样的库是否已经存在于LLVM中,或者你能给我指出如何自己构建它的好方向(现有源代码、引用、教程、示例...)。编辑:通过我的分析,我实际上想提取调用者/被调用者函数调用。在函数指针的情况下,我想返回一组可能的被调用者。调用者和被调用者都必须在源代码中定义(这不包括库中的第三方函数)。 最佳答案

c++ - 将 LLVM JIT 代码链接到静态 LLVM 库?

我正在实现一个跨平台(MacOSX、Windows和Linux)应用程序,该应用程序将对财务数据进行大量CPU密集型分析。出于速度原因,大部分分析引擎将用C++编写,用户可访问的脚本引擎与C++测试引擎交互。随着时间的推移,我想编写几个脚本前端来模拟其他流行的软件,并拥有大量的用户群。第一个方面将是类似VisualBasic的脚本语言。我认为LLVM非常适合我的需求。由于数据量巨大,性能非常重要;运行一次测试可能需要数小时或数天才能得到答案。我相信使用LLVM还可以让我使用单一的后端解决方案,同时随着时间的推移为不同风格的脚本语言实现不同的前端。测试引擎本身将与界面分离,测试甚至会在单