in the predecessor block, leading to an incorrect conclusion for the edge value. Found by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122908
91177308-0d34-0410-b5e6-
96231b3b80d8
if (!isTrueDest) TrueValues = TrueValues.inverse();
// Figure out the possible values of the query BEFORE this branch.
+ if (!hasBlockValue(Val, BBFrom)) {
+ block_value_stack.push(std::make_pair(BBFrom, Val));
+ return false;
+ }
+
LVILatticeVal InBlock = getBlockValue(Val, BBFrom);
if (!InBlock.isConstantRange()) {
Result = LVILatticeVal::getRange(TrueValues);