Skip to content

Commit e76b5e6

Browse files
committed
Move restriction to the default implementation of isDesirableToCommuteWithShift for targets
1 parent 6578642 commit e76b5e6

File tree

5 files changed

+6
-41
lines changed

5 files changed

+6
-41
lines changed

llvm/include/llvm/CodeGen/TargetLowering.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4305,6 +4305,12 @@ class TargetLowering : public TargetLoweringBase {
43054305
/// @param Level the current DAGCombine legalization level.
43064306
virtual bool isDesirableToCommuteWithShift(const SDNode *N,
43074307
CombineLevel Level) const {
4308+
SDValue ShiftLHS = N->getOperand(0);
4309+
if (!ShiftLHS->hasOneUse())
4310+
return false;
4311+
if (ShiftLHS.getOpcode() == ISD::SIGN_EXTEND &&
4312+
!ShiftLHS.getOperand(0)->hasOneUse())
4313+
return false;
43084314
return true;
43094315
}
43104316

llvm/lib/Target/Hexagon/HexagonISelLowering.cpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,24 +2152,6 @@ bool HexagonTargetLowering::hasBitTest(SDValue X, SDValue Y) const {
21522152
return X.getValueType().isScalarInteger(); // 'tstbit'
21532153
}
21542154

2155-
bool HexagonTargetLowering::isDesirableToCommuteWithShift(
2156-
const SDNode *N, CombineLevel Level) const {
2157-
assert((N->getOpcode() == ISD::SHL || N->getOpcode() == ISD::SRA ||
2158-
N->getOpcode() == ISD::SRL) &&
2159-
"Expected shift op");
2160-
2161-
SDValue ShiftLHS = N->getOperand(0);
2162-
2163-
if (!ShiftLHS->hasOneUse())
2164-
return false;
2165-
2166-
if (ShiftLHS.getOpcode() == ISD::SIGN_EXTEND &&
2167-
!ShiftLHS.getOperand(0)->hasOneUse())
2168-
return false;
2169-
2170-
return true;
2171-
}
2172-
21732155
bool HexagonTargetLowering::isTruncateFree(Type *Ty1, Type *Ty2) const {
21742156
return isTruncateFree(EVT::getEVT(Ty1), EVT::getEVT(Ty2));
21752157
}

llvm/lib/Target/Hexagon/HexagonISelLowering.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,6 @@ class HexagonTargetLowering : public TargetLowering {
155155

156156
bool hasBitTest(SDValue X, SDValue Y) const override;
157157

158-
bool isDesirableToCommuteWithShift(const SDNode *N,
159-
CombineLevel Level) const override;
160-
161158
bool allowTruncateForTailCall(Type *Ty1, Type *Ty2) const override;
162159

163160
/// Return true if an FMA operation is faster than a pair of mul and add

llvm/lib/Target/PowerPC/PPCISelLowering.cpp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19137,20 +19137,3 @@ Value *PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(
1913719137
return Builder.CreateOr(
1913819138
Lo, Builder.CreateShl(Hi, ConstantInt::get(ValTy, 64)), "val64");
1913919139
}
19140-
19141-
bool PPCTargetLowering::isDesirableToCommuteWithShift(
19142-
const SDNode *N, CombineLevel Level) const {
19143-
assert((N->getOpcode() == ISD::SHL || N->getOpcode() == ISD::SRA ||
19144-
N->getOpcode() == ISD::SRL) &&
19145-
"Expected shift op");
19146-
19147-
SDValue ShiftLHS = N->getOperand(0);
19148-
if (!ShiftLHS->hasOneUse())
19149-
return false;
19150-
19151-
if (ShiftLHS.getOpcode() == ISD::SIGN_EXTEND &&
19152-
!ShiftLHS.getOperand(0)->hasOneUse())
19153-
return false;
19154-
19155-
return true;
19156-
}

llvm/lib/Target/PowerPC/PPCISelLowering.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,9 +1491,6 @@ namespace llvm {
14911491
/// through to determine the optimal load/store instruction format.
14921492
unsigned computeMOFlags(const SDNode *Parent, SDValue N,
14931493
SelectionDAG &DAG) const;
1494-
1495-
bool isDesirableToCommuteWithShift(const SDNode *N,
1496-
CombineLevel Level) const override;
14971494
}; // end class PPCTargetLowering
14981495

14991496
namespace PPC {

0 commit comments

Comments
 (0)