summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJohn Brawn <john.brawn@arm.com>2017-05-15 11:50:21 +0000
committerJohn Brawn <john.brawn@arm.com>2017-05-15 11:50:21 +0000
commit43132c46a6ca95feb959377a50e74acd8b0125c9 (patch)
treefb4232c7a61177eac135a28492fadb6890b639de /llvm/lib/Target
parentaed4b5682d3da7ee08f615290a68418d601970ce (diff)
downloadbcm5719-llvm-43132c46a6ca95feb959377a50e74acd8b0125c9.tar.gz
bcm5719-llvm-43132c46a6ca95feb959377a50e74acd8b0125c9.zip
[ARM] Mark LEApcrel as not having side effects
Doing this lets us hoist it out of loops, and I've also marked it as rematerializable the same as the thumb1 and thumb2 counterparts. It looks like it being marked as such was just a mistake, as the commit that made that change only mentions LEApcrelJT and in thumb1 and thumb2 only the LEApcrelJT instructions were marked as having side-effects, so it looks like the intent was to only mark LEApcrelJT as having side-effects but LEApcrel was accidentally marked as such also. Differential Revision: https://reviews.llvm.org/D32857 llvm-svn: 303053
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrInfo.td4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td
index d06b7d0896f..9e33f5ced87 100644
--- a/llvm/lib/Target/ARM/ARMInstrInfo.td
+++ b/llvm/lib/Target/ARM/ARMInstrInfo.td
@@ -2222,14 +2222,14 @@ def ADR : AI1<{0,?,?,0}, (outs GPR:$Rd), (ins adrlabel:$label),
let Inst{11-0} = label{11-0};
}
-let hasSideEffects = 1 in {
+let hasSideEffects = 0, isReMaterializable = 1 in
def LEApcrel : ARMPseudoInst<(outs GPR:$Rd), (ins i32imm:$label, pred:$p),
4, IIC_iALUi, []>, Sched<[WriteALU, ReadALU]>;
+let hasSideEffects = 1 in
def LEApcrelJT : ARMPseudoInst<(outs GPR:$Rd),
(ins i32imm:$label, pred:$p),
4, IIC_iALUi, []>, Sched<[WriteALU, ReadALU]>;
-}
//===----------------------------------------------------------------------===//
// Control Flow Instructions.
OpenPOWER on IntegriCloud