diff options
author | Cameron Zwarich <zwarich@apple.com> | 2011-10-05 23:39:02 +0000 |
---|---|---|
committer | Cameron Zwarich <zwarich@apple.com> | 2011-10-05 23:39:02 +0000 |
commit | 842f99a6ee02775e345c00ae985cd81e6da1f9df (patch) | |
tree | 6da31dfe4dff1361407709e38f5be4d3fb9285fa | |
parent | 87aa18378e6aa5d7be4679cdfb17fdfdb29e29b9 (diff) | |
download | bcm5719-llvm-842f99a6ee02775e345c00ae985cd81e6da1f9df.tar.gz bcm5719-llvm-842f99a6ee02775e345c00ae985cd81e6da1f9df.zip |
Always merge profitable shifts on A9, not just when they have a single use.
llvm-svn: 141248
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp index 0626240333d..ce877b0d04e 100644 --- a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -555,9 +555,7 @@ bool ARMDAGToDAGISel::SelectLdStSOReg(SDValue N, SDValue &Base, SDValue &Offset, if (ConstantSDNode *Sh = dyn_cast<ConstantSDNode>(N.getOperand(0).getOperand(1))) { ShAmt = Sh->getZExtValue(); - if (!Subtarget->isCortexA9() || - (N.hasOneUse() && - isShifterOpProfitable(N.getOperand(0), ShOpcVal, ShAmt))) { + if (isShifterOpProfitable(N.getOperand(0), ShOpcVal, ShAmt)) { Offset = N.getOperand(0).getOperand(0); Base = N.getOperand(1); } else { @@ -697,9 +695,7 @@ AddrMode2Type ARMDAGToDAGISel::SelectAddrMode2Worker(SDValue N, if (ConstantSDNode *Sh = dyn_cast<ConstantSDNode>(N.getOperand(0).getOperand(1))) { ShAmt = Sh->getZExtValue(); - if (!Subtarget->isCortexA9() || - (N.hasOneUse() && - isShifterOpProfitable(N.getOperand(0), ShOpcVal, ShAmt))) { + if (isShifterOpProfitable(N.getOperand(0), ShOpcVal, ShAmt)) { Offset = N.getOperand(0).getOperand(0); Base = N.getOperand(1); } else { |