mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
When propagating equalities, eg replacing A with B in every basic block
dominated by Root, check that B is available throughout the scope. This is obviously true (famous last words?) given the current logic, but the check may be helpful if more complicated reasoning is added one day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153323 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2001,6 +2001,9 @@ bool GVN::propagateEquality(Value *LHS, Value *RHS, BasicBlock *Root) {
|
|||||||
LVN = RVN;
|
LVN = RVN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
assert((!isa<Instruction>(RHS) ||
|
||||||
|
DT->properlyDominates(cast<Instruction>(RHS)->getParent(), Root)) &&
|
||||||
|
"Instruction doesn't dominate scope!");
|
||||||
|
|
||||||
// If value numbering later deduces that an instruction in the scope is equal
|
// If value numbering later deduces that an instruction in the scope is equal
|
||||||
// to 'LHS' then ensure it will be turned into 'RHS'.
|
// to 'LHS' then ensure it will be turned into 'RHS'.
|
||||||
|
Reference in New Issue
Block a user