[llvm] 64af9f6 - [InstSimplify] add 'x + poison -> poison' (needed for NewGVN)

Nuno Lopes via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 30 03:53:33 PST 2021


Author: Nuno Lopes
Date: 2021-12-30T11:52:42Z
New Revision: 64af9f61c30191482979c6883e4cc63703f12010

URL: https://github.com/llvm/llvm-project/commit/64af9f61c30191482979c6883e4cc63703f12010
DIFF: https://github.com/llvm/llvm-project/commit/64af9f61c30191482979c6883e4cc63703f12010.diff

LOG: [InstSimplify] add 'x + poison -> poison' (needed for NewGVN)

Added: 
    

Modified: 
    llvm/lib/Analysis/InstructionSimplify.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 1c26ab3619089..4a8dc754349bd 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -620,6 +620,10 @@ static Value *SimplifyAddInst(Value *Op0, Value *Op1, bool IsNSW, bool IsNUW,
   if (Constant *C = foldOrCommuteConstant(Instruction::Add, Op0, Op1, Q))
     return C;
 
+  // X + poison -> poison
+  if (isa<PoisonValue>(Op1))
+    return Op1;
+
   // X + undef -> undef
   if (Q.isUndefValue(Op1))
     return Op1;


        


More information about the llvm-commits mailing list