some opt
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user