The verification I added has overly restrictive asserts.
Unreachable blocks can have any incoming value in practice, after an
update due to a "replaceAllUses" call when the repalced entry is
LiveOnEntry.
llvm-svn: 369050
}
DTNode = DTNode->getIDom();
}
- assert((DTNode || IncAcc == getLiveOnEntryDef()) &&
- "Expected LoE inc");
} else if (auto *DefList = getBlockDefs(Pred)) {
// If Pred has unreachable predecessors, but has at least a Def, the
// incoming access can be the last Def in Pred, or it could have been
"Incorrect incoming access into phi.");
} else {
// If Pred has unreachable predecessors and no Defs, incoming access
- // should be LoE.
- assert(IncAcc == getLiveOnEntryDef() && "Expected LoE inc");
+ // should be LoE; In practice, after an update, it may be any access.
}
}
}