forked from OSchip/llvm-project
Rename isKnownNotFullPoison to programUndefinedIfPoison; NFC
Summary: programUndefinedIfPoison makes more sense, given what the function does; and I'm about to add a function with a name similar to isKnownNotFullPoison (so do the rename to avoid confusion). Reviewers: broune, majnemer, bjarke.roune Reviewed By: broune Subscribers: mcrosier, llvm-commits, mzolotukhin Differential Revision: https://reviews.llvm.org/D30444 llvm-svn: 301776
This commit is contained in:
parent
8ac81f3924
commit
08989c7ecd
|
@ -417,7 +417,7 @@ template <typename T> class ArrayRef;
|
|||
///
|
||||
/// Note that this currently only considers the basic block that is
|
||||
/// the parent of I.
|
||||
bool isKnownNotFullPoison(const Instruction *PoisonI);
|
||||
bool programUndefinedIfFullPoison(const Instruction *PoisonI);
|
||||
|
||||
/// \brief Specific patterns of select instructions we can match.
|
||||
enum SelectPatternFlavor {
|
||||
|
|
|
@ -5029,7 +5029,8 @@ bool ScalarEvolution::isSCEVExprNeverPoison(const Instruction *I) {
|
|||
return false;
|
||||
|
||||
// Only proceed if we can prove that I does not yield poison.
|
||||
if (!isKnownNotFullPoison(I)) return false;
|
||||
if (!programUndefinedIfFullPoison(I))
|
||||
return false;
|
||||
|
||||
// At this point we know that if I is executed, then it does not wrap
|
||||
// according to at least one of NSW or NUW. If I is not executed, then we do
|
||||
|
|
|
@ -3841,7 +3841,7 @@ const Value *llvm::getGuaranteedNonFullPoisonOp(const Instruction *I) {
|
|||
}
|
||||
}
|
||||
|
||||
bool llvm::isKnownNotFullPoison(const Instruction *PoisonI) {
|
||||
bool llvm::programUndefinedIfFullPoison(const Instruction *PoisonI) {
|
||||
// We currently only look for uses of poison values within the same basic
|
||||
// block, as that makes it easier to guarantee that the uses will be
|
||||
// executed given that PoisonI is executed.
|
||||
|
|
|
@ -1138,7 +1138,7 @@ bool SeparateConstOffsetFromGEP::reuniteExts(Instruction *I) {
|
|||
// Add I to DominatingExprs if it's an add/sub that can't sign overflow.
|
||||
if (match(I, m_NSWAdd(m_Value(LHS), m_Value(RHS))) ||
|
||||
match(I, m_NSWSub(m_Value(LHS), m_Value(RHS)))) {
|
||||
if (isKnownNotFullPoison(I)) {
|
||||
if (programUndefinedIfFullPoison(I)) {
|
||||
const SCEV *Key =
|
||||
SE->getAddExpr(SE->getUnknown(LHS), SE->getUnknown(RHS));
|
||||
DominatingExprs[Key].push_back(I);
|
||||
|
|
|
@ -205,7 +205,7 @@ exit:
|
|||
ret void
|
||||
}
|
||||
|
||||
; Demonstrate why we need a Visited set in llvm::isKnownNotFullPoison.
|
||||
; Demonstrate why we need a Visited set in llvm::programUndefinedIfFullPoison.
|
||||
define void @test-add-not-header5(float* %input, i32 %offset) {
|
||||
; CHECK-LABEL: @test-add-not-header5
|
||||
entry:
|
||||
|
|
Loading…
Reference in New Issue