From d61601143b167d48e50f8cfc81d51770da39fed1 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Fri, 16 Feb 2018 20:51:33 +0800 Subject: MIR Optimise - (minor) Note about switch consteval elimination --- src/mir/optimise.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') 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 -- cgit v1.2.3