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%.
This commit is contained in:
@@ -164,24 +164,8 @@ impl DataFlowGraph {
|
|||||||
/// parameter.
|
/// parameter.
|
||||||
pub fn value_def(&self, v: Value) -> ValueDef {
|
pub fn value_def(&self, v: Value) -> ValueDef {
|
||||||
match self.values[v] {
|
match self.values[v] {
|
||||||
ValueData::Inst { inst, num, .. } => {
|
ValueData::Inst { inst, num, .. } => ValueDef::Result(inst, num as usize),
|
||||||
assert_eq!(
|
ValueData::Param { ebb, num, .. } => ValueDef::Param(ebb, num as usize),
|
||||||
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::Alias { original, .. } => {
|
ValueData::Alias { original, .. } => {
|
||||||
// Make sure we only recurse one level. `resolve_aliases` has safeguards to
|
// Make sure we only recurse one level. `resolve_aliases` has safeguards to
|
||||||
// detect alias loops without overrunning the stack.
|
// detect alias loops without overrunning the stack.
|
||||||
|
|||||||
Reference in New Issue
Block a user