[midend]更新遍静态ID定义方法,

注册遍模板函数重构(针对遍的不同构造方法),
修复phi指令更新引起的旧代码错误,
将CFG优化适配到现有终端框架中,
独立CFG优化方法使得其他优化遍能独立调用,
usedelete方法回调取消删除功能。
IRGenerator代码风格修改。
This commit is contained in:
rain2133
2025-07-23 17:19:11 +08:00
parent 3df3d7a097
commit 87d38be255
12 changed files with 509 additions and 298 deletions

View File

@@ -10,15 +10,12 @@ namespace sysy {
class SysYIROptUtils{
public:
// 删除use关系
// 根据指令的使用情况删除其所有的use关系
// 找到指令的所有使用者,并从它们的使用列表中删除该指令
// 仅仅删除use关系
static void usedelete(Instruction *instr) {
for (auto &use : instr->getOperands()) {
Value* val = use->getValue();
val->removeUse(use);
}
instr->getParent()->removeInst(instr); // 从基本块中删除指令
}
// 判断是否是全局变量