summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-05-16 07:45:54 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-05-16 07:45:54 +0000
commit01a4227ed15718e4216fcc343e504347f91f6267 (patch)
tree7d2dde39c7f67ee421a8899f73225e6c0673a7cd /llvm
parent48fb92f75d548241c4103d734f958f1ed04aa4cc (diff)
downloadbcm5719-llvm-01a4227ed15718e4216fcc343e504347f91f6267.tar.gz
bcm5719-llvm-01a4227ed15718e4216fcc343e504347f91f6267.zip
Conditional branch is not a barrier.
llvm-svn: 37103
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrInfo.td10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td
index ad2807cc4af..b8f5b8a421e 100644
--- a/llvm/lib/Target/ARM/ARMInstrInfo.td
+++ b/llvm/lib/Target/ARM/ARMInstrInfo.td
@@ -590,14 +590,12 @@ let isCall = 1, noResults = 1,
}
}
-let isBranch = 1, isTerminator = 1, noResults = 1, isBarrier = 1 in {
+let isBranch = 1, isTerminator = 1, noResults = 1 in {
// B can changed into a Bcc, but it is not "predicated".
+ let isBarrier = 1 in {
def B : AXI<(ops brtarget:$dst), "b $dst",
[(br bb:$dst)]>;
- def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst",
- [(ARMbrcond bb:$dst, imm:$cc)]>;
-
def BR_JTr : JTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id),
"mov", " pc, $dst \n$jt",
[(ARMbrjt GPR:$dst, tjumptable:$jt, imm:$id)]>;
@@ -609,6 +607,10 @@ let isBranch = 1, isTerminator = 1, noResults = 1, isBarrier = 1 in {
"add", " pc, $dst, $idx \n$jt",
[(ARMbrjt (add GPR:$dst, GPR:$idx), tjumptable:$jt,
imm:$id)]>;
+ }
+
+ def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst",
+ [(ARMbrcond bb:$dst, imm:$cc)]>;
}
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud