[llvm] cfb4dce - [X86] combineConstantPoolLoads - early-out if the load is not from a constant pool. NFC.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 19 01:52:13 PDT 2024
Author: Simon Pilgrim
Date: 2024-06-19T09:51:48+01:00
New Revision: cfb4dce90ce66acbd094e443f422c4e5c413a9e8
URL: https://github.com/llvm/llvm-project/commit/cfb4dce90ce66acbd094e443f422c4e5c413a9e8
DIFF: https://github.com/llvm/llvm-project/commit/cfb4dce90ce66acbd094e443f422c4e5c413a9e8.diff
LOG: [X86] combineConstantPoolLoads - early-out if the load is not from a constant pool. NFC.
Don't embed inside the for-loop later on
Added:
Modified:
llvm/lib/Target/X86/X86ISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index a54fa257fee94..4c908167d6c52 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -50874,6 +50874,10 @@ static SDValue combineConstantPoolLoads(SDNode *N, const SDLoc &dl,
if (!(RegVT.is128BitVector() || RegVT.is256BitVector()))
return SDValue();
+ const Constant *LdC = getTargetConstantFromBasePtr(Ptr);
+ if (!LdC)
+ return SDValue();
+
auto MatchingBits = [](const APInt &Undefs, const APInt &UserUndefs,
ArrayRef<APInt> Bits, ArrayRef<APInt> UserBits) {
for (unsigned I = 0, E = Undefs.getBitWidth(); I != E; ++I) {
@@ -50898,12 +50902,11 @@ static SDValue combineConstantPoolLoads(SDNode *N, const SDLoc &dl,
RegVT.getFixedSizeInBits()) {
EVT UserVT = User->getValueType(0);
SDValue UserPtr = UserLd->getBasePtr();
- const Constant *LdC = getTargetConstantFromBasePtr(Ptr);
const Constant *UserC = getTargetConstantFromBasePtr(UserPtr);
// See if we are loading a constant that matches in the lower
// bits of a longer constant (but from a
diff erent constant pool ptr).
- if (LdC && UserC && UserPtr != Ptr) {
+ if (UserC && UserPtr != Ptr) {
unsigned LdSize = LdC->getType()->getPrimitiveSizeInBits();
unsigned UserSize = UserC->getType()->getPrimitiveSizeInBits();
if (LdSize < UserSize || !ISD::isNormalLoad(User)) {
More information about the llvm-commits
mailing list