llvm-clang相关内容
在LLVM中,BasicBlock具有属性getSinglePredecessor()和getSingleSuccessor(),但我需要获取基本块的后继者和前置者的完整列表。如何在llvm中实现这一点? 我的代码是 virtual bool runOnFunction(Function &F) { for (Function::iterator b
..
我知道解析器生成的AST用于在前端生成IR。 我想知道如何解析AST,然后将其转换为IR(探测程序集或位码), AST是树,从AST到IR转换涉及哪些步骤。 推荐答案 发射LLVM IR from Clang ASTs发生在朗氏code gen阶段。此阶段的代码位于lib/CodeGen/中(相对于Clang的源根目录)。不需要解析AST,因为Clang在内存数据结构中具有
..
..
我正在使用 this answer 创建一个模块映射来为 CommonCrypto 创建一个模块,这样我就可以在一个框架. 但是,这样做意味着我使用此框架的任何项目都可以通过 import CommonCrypto 访问 CommonCrypto - 更糟糕的是,在另一个框架中声明 CommonCrypto 并将其导入项目会导致 重新定义模块“CommonCrypto" 错误. 即以下
..
我是 LLVM 新手.听说clang支持CUDA.如何使用 clang 编译 CUDA?我是否必须进行一些配置更改或包含任何特定的头文件?我在网上找不到有关此的任何信息.有可能吗? 现在,当我尝试使用 clang as 编译一个虚拟 cuda 程序时 clang -I/usr/local/cuda/include 文件名.cu 我收到以下错误 未知类型名称 '__global__'_
..
official LLVM 4.0 build for Windows 与 Visual Studio 集成到 Visual Studio 2015.不幸的是它仍然不支持 Visual Studio 2017. 当您尝试将项目的Platform Toolset设置为LLVM-vs2014时,会弹出错误. 你知道有什么方法可以让它工作吗? 更新 在 2018 年,LLVM 6
..
我想在我的项目 你用xCode 5成功编译protobuf了吗,请帮忙分享一下你的经验? 谢谢. 解决方案 如果您不介意自己构建 Google Protobuf,那么使用 Cocoapods 的一个不错的替代方法是在此处运行 bash 脚本. https://gist.github.com/BennettSmith/7150245 此脚本将生成支持 i386、arm
..
内核在samples/bpf 中提供了许多示例.我有兴趣在树之外构建一个示例,就像我们构建一个内核模块一样,其中 Makefile 可以很简单.可以对 bpf 做同样的事情吗?我通过从 samples/bpf/Makefile 中删除不必要的部分并保持对 libbpf 和其他人的依赖来尝试它,但结果证明并不是那么容易. 例如,尝试在内核树之外构建samples/bpf/bpf_tcp_ker
..
我使用 Clang 编译器在我的 Mac 上使用 Xcode 创建了一个 C++ 应用程序. 我想编译我的源文件以创建一个可以在 Windows 机器上运行的可执行文件,但是我无法让 Clang 为我生成一个可执行文件. 这是我尝试过的: clang++ -std=c++11 -stdlib=libc++ -arch x86_64 class1.cpp class2.cpp... -
..
clang-check -ast-dump -ast-dump-filter=main.c 给出了特定代码的 AST(只是一个函数声明). 我们如何以 JSON 格式表示生成的 AST? PS:我只想要 AST 用于函数声明. 解决方案 使用 -ast-dump=json 参数调用 clang. 这是最近才实施的(2019 年 5 月),因此您需要最新版本的 Clang.
..
您好,我正在尝试实现 AST Clang 访问者,这是我的代码. class ExampleVisitor : public RecursiveASTVisitor{私人的:ASTContext *astContext;//用于获取额外的 AST 信息民众:virtual bool VisitVarDecl(VarDecl *var){numVariables++;string varName
..
给定一个 C++ 源代码,我想找到每个函数写入和读取的类字段.使用 Clang 前端执行此操作的最佳方法是什么? (我不是要求对所有步骤进行详细解释;但是,如果能找到一个有效解决方案的起点会很棒.) 到目前为止,我尝试使用 RecursiveASTVisitor 解析语句,但是很难跟踪节点连接.另外,我不知道如何跟踪如下内容: int&x = m_int_field;x++; 这显
..
我正在尝试解释您可以在下图中看到的 Clang AST 的部分内容.简而言之,我想做的是检查两个变量在不同的程序点是否相同.检查 AST 后,我注意到 AST 部分之间唯一的共同点是蓝色圈出的部分. 谁能帮助我了解这些十六进制数字在 AST 中对应的内容?我知道第一个块对应一个变量声明,第二个块对应一个表达式.是否有 Stmt 和 Expr 类上的方法可以调用来获取这些十六进制数? 解
..
我正在尝试解释您可以在下图中看到的 Clang AST 的部分内容.简而言之,我想做的是检查两个变量在不同的程序点是否相同.检查 AST 后,我注意到 AST 部分之间唯一的共同点是蓝色圈出的部分. 谁能帮助我了解这些十六进制数字在 AST 中对应的内容?我知道第一个块对应一个变量声明,第二个块对应一个表达式.是否有 Stmt 和 Expr 类上的方法可以调用来获取这些十六进制数? 解
..
我需要向 AST 插入新节点.例如,为函数添加命名空间:转这个 - void foo(); 进入这个 - 命名空间栏{无效的 foo();} 我阅读了如何克隆或创建clang 的 AST Stmt 节点? 但我不喜欢使用源到源编译 Tnx 解决方案 可以在这里找到答案http://clang-developer.42468.n3.nabble.com/Adding-nodes
..
我正在创建 clang 工具,我想从 clang AST 生成 LLVM IR.我知道可以用来获取 *.ll 文件的 -emit-llvm 选项,但是有没有办法在代码中生成 IR?我可以调用的一些方法接受 clang AST 或 AST 上下文并返回 llvm::Module?我找不到任何可以说明这一点的示例. 已编辑:所以我尝试为此使用 CodeGenAction,但我无法让它工作.我最终
..
命令: 我正在尝试使用 clang++ 交叉编译一个简单的 C++ 程序.我正在使用 Linaro gcc 工具链来获取库和其他所需的包含. ${root}/bin/clang++ --target=arm-linux-gnueabihf --rtlib=compiler-rt --stdlib=libc++ -nostdinc++ -I${root}/include/c++/v1 -wl
..
即使我只为 armv7 编译,NEON 乘法累加内部函数似乎被分解为单独的乘法和加法. 我在使用 Xcode 5 到 6 以及不同的优化设置(通过 Xcode 和直接通过命令行构建)的多个 Xcode 版本(最高至最新 4.5)中都遇到过这种情况. 例如构建和反汇编一些包含 的test.cpp #include float32x4_t 测试( float32x4_t a, floa
..
我们已经使用 Xcode 4 和 LLVM 2.0 几个月了,在完成对我们的应用程序的重大更新后,我们认为我们会将其发送给 Apple. 然而,我们无法想象的是,虽然该程序能够为模拟器和设备构建,但在归档时,XCode 只是抛出了一个令人讨厌的链接错误,让我们挂在那里. 该错误与 ZipKit 库有关(我们之前讨论过使用 使其在 XCode 4 下工作). 这是我们得到的: l
..
我需要告诉通行证在文件中查找特定功能.我想指定要在旅途中寻找的功能,即运行通行证时.知道我该怎么做吗?这有点像理论上向函数传递参数. 解决方案 使用 cl :: opt 添加命令行选项,并在运行密码时进行设置. 或者,如果要使用clang从C或C ++生成IR,则可以使用 __ attribute((__ annotate __(("foo"))))来标记您感兴趣的
..