This commit is contained in:
邓智航
2025-12-25 15:07:20 +08:00
parent c94bebf37b
commit a9b8e82fd5
12 changed files with 483 additions and 13 deletions

View File

@@ -45,6 +45,27 @@ public class IrFuncValue extends IrValue {
bblocks.add(bblock);
}
public void deleteBBlock(IrBasicBlock bblock) {
bblocks.remove(bblock);
bblock.clearAllInstrs();
}
public void deleteDeadBlock() {
ArrayList<IrBasicBlock> liveBlocks = new ArrayList<>();
ArrayList<IrBasicBlock> deadBlocks = new ArrayList<>();
for (IrBasicBlock bb : bblocks) {
if (!bb.getPreds().isEmpty() || bb.isEntry()) {
liveBlocks.add(bb);
} else {
deadBlocks.add(bb);
}
}
bblocks = liveBlocks;
for (IrBasicBlock bb : deadBlocks) {
bb.clearAllInstrs();
}
}
public Register getRegister(IrValue value) {
return valueRegisterMap.get(value);
}