[llvm] fbac697 - [Transforms] Replace incorrect uses of m_Deferred with m_Specific (#95719)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 16 14:50:43 PDT 2024
Author: AtariDreams
Date: 2024-06-17T05:50:39+08:00
New Revision: fbac6977820a341ab3dd7e1f0a2d8881e0161c49
URL: https://github.com/llvm/llvm-project/commit/fbac6977820a341ab3dd7e1f0a2d8881e0161c49
DIFF: https://github.com/llvm/llvm-project/commit/fbac6977820a341ab3dd7e1f0a2d8881e0161c49.diff
LOG: [Transforms] Replace incorrect uses of m_Deferred with m_Specific (#95719)
The values have been bound already, so use m_Specific.
Added:
Modified:
llvm/lib/Analysis/InstructionSimplify.cpp
llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 00895860ca49b..1fb3b28444e4a 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -2016,7 +2016,7 @@ static Value *simplifyAndCommutative(Value *Op0, Value *Op1,
// (X | ~Y) & (X | Y) --> X
Value *X, *Y;
if (match(Op0, m_c_Or(m_Value(X), m_Not(m_Value(Y)))) &&
- match(Op1, m_c_Or(m_Deferred(X), m_Deferred(Y))))
+ match(Op1, m_c_Or(m_Specific(X), m_Specific(Y))))
return X;
// If we have a multiplication overflow check that is being 'and'ed with a
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index 8695e9e69df20..d767fa3930e2f 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -1192,7 +1192,7 @@ static Value *foldAndOrOfICmpsWithConstEq(ICmpInst *Cmp0, ICmpInst *Cmp1,
// operand 0).
Value *Y;
ICmpInst::Predicate Pred1;
- if (!match(Cmp1, m_c_ICmp(Pred1, m_Value(Y), m_Deferred(X))))
+ if (!match(Cmp1, m_c_ICmp(Pred1, m_Value(Y), m_Specific(X))))
return nullptr;
// Replace variable with constant value equivalence to remove a variable use:
@@ -1550,7 +1550,7 @@ Instruction *InstCombinerImpl::canonicalizeConditionalNegationViaMathToSelect(
if (!match(&I, m_c_BinOp(m_OneUse(m_Value()), m_Value())) ||
!match(I.getOperand(1), m_SExt(m_Value(Cond))) ||
!Cond->getType()->isIntOrIntVectorTy(1) ||
- !match(I.getOperand(0), m_c_Add(m_SExt(m_Deferred(Cond)), m_Value(X))))
+ !match(I.getOperand(0), m_c_Add(m_SExt(m_Specific(Cond)), m_Value(X))))
return nullptr;
return SelectInst::Create(Cond, Builder.CreateNeg(X, X->getName() + ".neg"),
X);
@@ -3785,7 +3785,7 @@ Instruction *InstCombinerImpl::visitOr(BinaryOperator &I) {
const auto TryXorOpt = [&](Value *Lhs, Value *Rhs) -> Instruction * {
if (match(Lhs, m_c_Xor(m_And(m_Value(A), m_Value(B)), m_Deferred(A))) &&
match(Rhs,
- m_c_Xor(m_And(m_Specific(A), m_Specific(B)), m_Deferred(B)))) {
+ m_c_Xor(m_And(m_Specific(A), m_Specific(B)), m_Specific(B)))) {
return BinaryOperator::CreateXor(A, B);
}
return nullptr;
More information about the llvm-commits
mailing list