From 085e228358ab472193d0faffb87e486f34383e13 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Mon, 22 Jan 2018 11:31:21 -0800 Subject: [PATCH] Remove assertions from the hot value_def() function. The errors caught by these assertions are also detected by the IL verifier. Speed up compilation by 13%. --- lib/cretonne/src/ir/dfg.rs | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/lib/cretonne/src/ir/dfg.rs b/lib/cretonne/src/ir/dfg.rs index 25457000d7..5374138e51 100644 --- a/lib/cretonne/src/ir/dfg.rs +++ b/lib/cretonne/src/ir/dfg.rs @@ -164,24 +164,8 @@ impl DataFlowGraph { /// parameter. pub fn value_def(&self, v: Value) -> ValueDef { match self.values[v] { - ValueData::Inst { inst, num, .. } => { - assert_eq!( - Some(v), - self.results[inst].get(num as usize, &self.value_lists), - "Dangling result value {}: {}", - v, - self.display_inst(inst, None) - ); - ValueDef::Result(inst, num as usize) - } - ValueData::Param { ebb, num, .. } => { - assert_eq!( - Some(v), - self.ebbs[ebb].params.get(num as usize, &self.value_lists), - "Dangling EBB parameter value" - ); - ValueDef::Param(ebb, num as usize) - } + ValueData::Inst { inst, num, .. } => ValueDef::Result(inst, num as usize), + ValueData::Param { ebb, num, .. } => ValueDef::Param(ebb, num as usize), ValueData::Alias { original, .. } => { // Make sure we only recurse one level. `resolve_aliases` has safeguards to // detect alias loops without overrunning the stack.