diff options
| author | Victor Campos <Victor.Campos@arm.com> | 2019-12-20 18:08:24 +0000 |
|---|---|---|
| committer | Victor Campos <Victor.Campos@arm.com> | 2019-12-20 18:08:24 +0000 |
| commit | 2ff5a596cbfd8fcf760f0deb62e52f5d378f5776 (patch) | |
| tree | 579affcab54808a3b1a97a58ff189f4bfa7eb732 /llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | |
| parent | 6be76f491fcbb2a8476e58cb8d3310155c71e74a (diff) | |
| download | bcm5719-llvm-2ff5a596cbfd8fcf760f0deb62e52f5d378f5776.tar.gz bcm5719-llvm-2ff5a596cbfd8fcf760f0deb62e52f5d378f5776.zip | |
Revert "[ARM] Improve codegen of volatile load/store of i64"
This reverts commit bbcf1c3496ce2bd1ed87e8fb15ad896e279633ce.
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp index dcdec779bbe..1f998defbd1 100644 --- a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -145,8 +145,6 @@ public: // Thumb 2 Addressing Modes: bool SelectT2AddrModeImm12(SDValue N, SDValue &Base, SDValue &OffImm); - template <unsigned Shift> - bool SelectT2AddrModeImm8(SDValue N, SDValue &Base, SDValue &OffImm); bool SelectT2AddrModeImm8(SDValue N, SDValue &Base, SDValue &OffImm); bool SelectT2AddrModeImm8Offset(SDNode *Op, SDValue N, @@ -1296,33 +1294,6 @@ bool ARMDAGToDAGISel::SelectT2AddrModeImm12(SDValue N, return true; } -template <unsigned Shift> -bool ARMDAGToDAGISel::SelectT2AddrModeImm8(SDValue N, SDValue &Base, - SDValue &OffImm) { - if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) { - int RHSC; - if (isScaledConstantInRange(N.getOperand(1), 1 << Shift, -255, 256, RHSC)) { - Base = N.getOperand(0); - if (Base.getOpcode() == ISD::FrameIndex) { - int FI = cast<FrameIndexSDNode>(Base)->getIndex(); - Base = CurDAG->getTargetFrameIndex( - FI, TLI->getPointerTy(CurDAG->getDataLayout())); - } - - if (N.getOpcode() == ISD::SUB) - RHSC = -RHSC; - OffImm = - CurDAG->getTargetConstant(RHSC * (1 << Shift), SDLoc(N), MVT::i32); - return true; - } - } - - // Base only. - Base = N; - OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32); - return true; -} - bool ARMDAGToDAGISel::SelectT2AddrModeImm8(SDValue N, SDValue &Base, SDValue &OffImm) { // Match simple R - imm8 operands. @@ -3515,26 +3486,6 @@ void ARMDAGToDAGISel::Select(SDNode *N) { CurDAG->RemoveDeadNode(N); return; } - case ARMISD::LDRD: { - if (Subtarget->isThumb2()) - break; // TableGen handles isel in this case. - SDValue Base, RegOffset, ImmOffset; - const SDValue &Chain = N->getOperand(0); - const SDValue &Addr = N->getOperand(1); - SelectAddrMode3(Addr, Base, RegOffset, ImmOffset); - SDValue Ops[] = {Base, RegOffset, ImmOffset, Chain}; - SDNode *New = CurDAG->getMachineNode(ARM::LOADDUAL, dl, - {MVT::Untyped, MVT::Other}, Ops); - SDValue Lo = CurDAG->getTargetExtractSubreg(ARM::gsub_0, dl, MVT::i32, - SDValue(New, 0)); - SDValue Hi = CurDAG->getTargetExtractSubreg(ARM::gsub_1, dl, MVT::i32, - SDValue(New, 0)); - ReplaceUses(SDValue(N, 0), Lo); - ReplaceUses(SDValue(N, 1), Hi); - ReplaceUses(SDValue(N, 2), SDValue(New, 1)); - CurDAG->RemoveDeadNode(N); - return; - } case ARMISD::LOOP_DEC: { SDValue Ops[] = { N->getOperand(1), N->getOperand(2), |

