diff options
author | Daniel Thornburgh <dthorn@google.com> | 2024-05-22 13:27:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-22 11:27:55 -0700 |
commit | 8baf96f3060bc26a308b3614feed4117e5299d3c (patch) | |
tree | 02d5c0ec54d92a51f795f6c127433da08dbeeccd /llvm/lib/IR/ConstantFold.cpp | |
parent | da88e7fbd74cef33411bb5115f20e4b474d2d8b1 (diff) | |
download | llvm-8baf96f3060bc26a308b3614feed4117e5299d3c.zip llvm-8baf96f3060bc26a308b3614feed4117e5299d3c.tar.gz llvm-8baf96f3060bc26a308b3614feed4117e5299d3c.tar.bz2 |
Revert "[IR] Avoid creating icmp/fcmp constant expressions" (#93087)
Reverts llvm/llvm-project#92885 due to LLDB CI breakages.
Diffstat (limited to 'llvm/lib/IR/ConstantFold.cpp')
-rw-r--r-- | llvm/lib/IR/ConstantFold.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/IR/ConstantFold.cpp b/llvm/lib/IR/ConstantFold.cpp index 2c99f39..4622ad7 100644 --- a/llvm/lib/IR/ConstantFold.cpp +++ b/llvm/lib/IR/ConstantFold.cpp @@ -1282,9 +1282,9 @@ Constant *llvm::ConstantFoldCompareInstruction(CmpInst::Predicate Predicate, // Fast path for splatted constants. if (Constant *C1Splat = C1->getSplatValue()) if (Constant *C2Splat = C2->getSplatValue()) - if (Constant *Elt = - ConstantFoldCompareInstruction(Predicate, C1Splat, C2Splat)) - return ConstantVector::getSplat(C1VTy->getElementCount(), Elt); + return ConstantVector::getSplat( + C1VTy->getElementCount(), + ConstantExpr::getCompare(Predicate, C1Splat, C2Splat)); // Do not iterate on scalable vector. The number of elements is unknown at // compile-time. @@ -1302,11 +1302,8 @@ Constant *llvm::ConstantFoldCompareInstruction(CmpInst::Predicate Predicate, ConstantExpr::getExtractElement(C1, ConstantInt::get(Ty, I)); Constant *C2E = ConstantExpr::getExtractElement(C2, ConstantInt::get(Ty, I)); - Constant *Elt = ConstantFoldCompareInstruction(Predicate, C1E, C2E); - if (!Elt) - return nullptr; - ResElts.push_back(Elt); + ResElts.push_back(ConstantExpr::getCompare(Predicate, C1E, C2E)); } return ConstantVector::get(ResElts); @@ -1414,7 +1411,7 @@ Constant *llvm::ConstantFoldCompareInstruction(CmpInst::Predicate Predicate, // other way if possible. // Also, if C1 is null and C2 isn't, flip them around. Predicate = ICmpInst::getSwappedPredicate(Predicate); - return ConstantFoldCompareInstruction(Predicate, C2, C1); + return ConstantExpr::getICmp(Predicate, C2, C1); } } return nullptr; |