Conditional branch is not a barrier.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 07:45:54 +0000 (07:45 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 07:45:54 +0000 (07:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37103 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td

index ad2807cc4af2beeb89bc22981c204e9c484baf12..b8f5b8a421ed3dab82f744dd93023b8e43a42548 100644 (file)
@@ -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)]>;
 }
 
 //===----------------------------------------------------------------------===//