如何将第一条指令插入llvm中的空基本块

Posted

技术标签:

【中文标题】如何将第一条指令插入llvm中的空基本块【英文标题】:How to insert the first instruction to an empty basic block in llvm 【发布时间】:2018-11-11 11:14:10 【问题描述】:

非空基本块插入新的 l​​lvm 指令 确实很简单:只需迭代现有指令 直到您到达所需的位置并使用

newInst->insertBefore(thatInst);

命令。但是,当我查看BasicBlock 接口here 时, 我似乎找不到如何插入第一条指令? 我的意思是当一个新的基本块刚刚分配并且它仍然是空的时,如何将第一条指令插入其中?谢谢!

【问题讨论】:

【参考方案1】:

您可以像这样使用IRBuilder

llvm::IRBuilder builder(basicBlock);
builder.createAdd(...); // Replace "Add" as appropriate

或者,如果你想插入一个已经存在的指令对象:

builder.insert(instruction);

【讨论】:

以上是关于如何将第一条指令插入llvm中的空基本块的主要内容,如果未能解决你的问题,请参考以下文章

将第一个文件的第一列与第二个文件中的行匹配,然后将第二个文件中匹配行的最后一列插入第一个文件中的新第一列

在 GDB 中的第一条机器代码指令处停止

LLVM 基本块通行证

计算机开机运行是如何实现第一条取指指令的?请从电路层级解释

将 Access 表导入 Excel 表,而不将第一条记录作为 Access 字段标签

如何使用熊猫将第一整行设置为大数据中的索引?