summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mir/optimise.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mir/optimise.cpp b/src/mir/optimise.cpp
index 0a83332d..a88d7280 100644
--- a/src/mir/optimise.cpp
+++ b/src/mir/optimise.cpp
@@ -2315,6 +2315,18 @@ bool MIR_Optimise_ConstPropagte(::MIR::TypeResolve& state, ::MIR::Function& fcn)
}
state.set_cur_stmt_term(bbidx);
+ switch(bb.terminator.tag())
+ {
+ case ::MIR::Terminator::TAGDEAD: throw "";
+ TU_ARM(bb.terminator, Switch, te) {
+ auto it = known_values.find(te.val);
+ if( it != known_values.end() ) {
+ // TODO: How would an enum be encoded in switch?
+ }
+ } break;
+ default:
+ break;
+ }
}
// - Remove based on known booleans within a single block