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
|
/// Note that this currently only considers the basic block that is
|
||||||
/// the parent of I.
|
/// the parent of I.
|
||||||
bool isKnownNotFullPoison(const Instruction *PoisonI);
|
bool programUndefinedIfFullPoison(const Instruction *PoisonI);
|
||||||
|
|
||||||
/// \brief Specific patterns of select instructions we can match.
|
/// \brief Specific patterns of select instructions we can match.
|
||||||
enum SelectPatternFlavor {
|
enum SelectPatternFlavor {
|
||||||
|
|
|
@ -5029,7 +5029,8 @@ bool ScalarEvolution::isSCEVExprNeverPoison(const Instruction *I) {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Only proceed if we can prove that I does not yield poison.
|
// 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
|
// 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
|
// 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
|
// 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
|
// block, as that makes it easier to guarantee that the uses will be
|
||||||
// executed given that PoisonI is executed.
|
// 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.
|
// 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))) ||
|
if (match(I, m_NSWAdd(m_Value(LHS), m_Value(RHS))) ||
|
||||||
match(I, m_NSWSub(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 =
|
const SCEV *Key =
|
||||||
SE->getAddExpr(SE->getUnknown(LHS), SE->getUnknown(RHS));
|
SE->getAddExpr(SE->getUnknown(LHS), SE->getUnknown(RHS));
|
||||||
DominatingExprs[Key].push_back(I);
|
DominatingExprs[Key].push_back(I);
|
||||||
|
|
|
@ -205,7 +205,7 @@ exit:
|
||||||
ret void
|
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) {
|
define void @test-add-not-header5(float* %input, i32 %offset) {
|
||||||
; CHECK-LABEL: @test-add-not-header5
|
; CHECK-LABEL: @test-add-not-header5
|
||||||
entry:
|
entry:
|
||||||
|
|
Loading…
Reference in New Issue