refactor(furc/ssa): revert back to maximal SSA

Refs: #2
This commit is contained in:
2026-06-12 23:04:32 +02:00
parent be386cf230
commit abd975be23
-8
View File
@@ -25,7 +25,6 @@ void ssa::optimize(const std::unique_ptr<furlang::ir::function>& func) {
block_map_t successors;
std::unordered_map<furlang::ir::register_t, std::unordered_set<furlang::ir::block_index>> regSites;
std::unordered_map<furlang::ir::block_index, std::unordered_set<furlang::ir::register_t>> regUses;
std::unordered_map<furlang::ir::block_index, furlang::ir::block_index> idoms;
@@ -42,11 +41,6 @@ void ssa::optimize(const std::unique_ptr<furlang::ir::function>& func) {
regSites[instr->destination().reg()].insert(i);
}
}
for (const furlang::ir::operand* src : instr->sources()) {
if (src->type() != furlang::ir::operand_t::Register) continue;
regUses[i].insert(src->reg());
}
}
const auto& exit = block->exit();
@@ -161,8 +155,6 @@ void ssa::optimize(const std::unique_ptr<furlang::ir::function>& func) {
const auto& preds = predecessors[i];
for (auto reg : phis[i]) {
if (regUses[i].find(reg) == regUses[i].end()) continue;
auto phiInstr = std::make_unique<furlang::ir::phi_instruction>(reg);
for (auto pred : preds) {
phiInstr->labels().emplace_back(furlang::ir::operand::new_reg(reg), pred);