用LLVM中的指令代替教学的RHS
假设这是一个问题, 我有以下我想要的说明 %add = add nsw i32 %argc, 50 ,首先要创建一个二进制指令 %T1 = add nsw i32 %argc, 50 %add = add nsw i…
如何使用f.getValuesymboltable()
我想在功能中获取所有本地变量。 void getLocalVariables(Function &F) { ValueSymbolTable *vst = F.getValueSymbolTable(); for (auto vs : vst) { …
【 llvm延伸:从元数据中提取信息
我想从返回指令中获取值和 861 ,例如 ret i32%3,!dbg!861 ,它是元数据!861 =!diLocation(line:line:line:line:line: 8,列:5,范围:…
LLVM初学者:乐器,弦类型和元数据
我是LLVM的初学者,我想通过使用LLVM Pass获得给定的Varibale名称和行号的真实值。我有几个问题。 正确获取元数据; 获取字符串的类型; 获取动态值。…
clang的等效性是什么CMAKE的选项?
我正在尝试通过阅读LLVM文档来创建一种新的编程语言。其中一个文档是关于玩具编程语言“万花筒”。 (教程在这里: https://releases.llvm.org/9.0。 …
如何在模块通行证中获取loopinfo
我想通过模块通行中的函数迭代来获取每个函数中的循环。我的代码如下: for (auto &F:M) { if(!F.isDeclaration()){ LoopInfo &LI = getAnalysis(F).g…
llvm迭代时使用替换intwithvalue替换指令
我是LLVM的新手,我想使用函数 replaceinstwithvalue()删除一些无用的说明。 让我们看看以下示例: define dso_local i32 @foo(i32 %0, i32 %1) #0 …
如何从来源构建LLVM-HS
我使用Haskell&致力于解析大型LLVM-IR代码。 LLVM-HS 用于一些研究工作。 我使用了gllvm(在这篇文章上发表评论 - )将OpenSSL(LIBSSL)转换为.…
使用insertafter()插入LLVM指令
我是LLVM的新手,并且正在进行一些实验,例如插入指令。 我的 main.c 如下所示: int foo(int e, int a) { int b = a + 1; int c = b * 2; b = e << 1…
如何使用LLVM目标初始化函数
我的主机系统 :默认目标:X86_64-Ingnown-linux-gnu :主机CPU:Skylake llvm/clang使用llvm_targets_to_build =所有选项。 如何在我的代码中使用另…
为什么在LLVM IR中未实施优化,逐个划分?
根据源代码 *1给出以下和我的实验,LLVM实现了一种变换,该转换将划分变为乘法和向右移动。 在我的实验中,该优化在后端应用(因为我看到了x86汇编代…
用于大型 C 项目的 LLVM IR
我是 LLVM、clang 等新手。 我的主要需求是将 C 代码转换为 LLVM IR (.ll),然后将其解析为类似汇编的语言。为此,我到目前为止一直在使用小长度的 c …
如何在C&#x2B;&#x2B中使用LLVM库XCode项目?
我很松散地关注教程,以在llvm网站上实现万花筒m在我需要实际使用LLVM库进行代码生成的点。我已经使用HomeBrew( brew install llvm )安装了LLVM 13…
如何与LLVM的新通行证经理一起运行别名分析(Aamanager)
我正在尝试在为 LLVM 中的新通道管理器编写的通道中使用别名分析。 PreservedAnalyses run(Module &m, ModuleAnalysisManager &mam) { auto &aa = mam…