summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2015-11-16 21:04:51 +0000
committerDerek Schuff <dschuff@google.com>2015-11-16 21:04:51 +0000
commit4ed47784197e3922e0aa41cc89c6fd7d82221566 (patch)
tree51279d3050b2f376b7eb8692ecad7610d5c604cf /llvm
parent2dd41c5d42d1f34aae67b0d883afc7b1200a4070 (diff)
downloadbcm5719-llvm-4ed47784197e3922e0aa41cc89c6fd7d82221566.tar.gz
bcm5719-llvm-4ed47784197e3922e0aa41cc89c6fd7d82221566.zip
[WebAssembly] Reverse the order of operands for br_if
Summary: This is to match the new version in the spec Reviewers: sunfish Subscribers: jfb, llvm-commits, dschuff Differential Revision: http://reviews.llvm.org/D14519 llvm-svn: 253249
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td4
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp8
-rw-r--r--llvm/test/CodeGen/WebAssembly/cfg-stackify.ll22
3 files changed, 17 insertions, 17 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
index af73a93c207..dd63e98efe9 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
@@ -13,9 +13,9 @@
//===----------------------------------------------------------------------===//
let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
-def BR_IF : I<(outs), (ins bb_op:$dst, I32:$a),
+def BR_IF : I<(outs), (ins I32:$a, bb_op:$dst),
[(brcond I32:$a, bb:$dst)],
- "br_if\t$dst, $a">;
+ "br_if\t$a, $dst">;
let isBarrier = 1 in {
def BR : I<(outs), (ins bb_op:$dst),
[(br bb:$dst)],
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
index fe27b1ac669..ed30b535480 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
@@ -54,8 +54,8 @@ bool WebAssemblyInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,
case WebAssembly::BR_IF:
if (HaveCond)
return true;
- Cond.push_back(MI.getOperand(1));
- TBB = MI.getOperand(0).getMBB();
+ Cond.push_back(MI.getOperand(0));
+ TBB = MI.getOperand(1).getMBB();
HaveCond = true;
break;
case WebAssembly::BR:
@@ -105,8 +105,8 @@ unsigned WebAssemblyInstrInfo::InsertBranch(
}
BuildMI(&MBB, DL, get(WebAssembly::BR_IF))
- .addMBB(TBB)
- .addOperand(Cond[0]);
+ .addOperand(Cond[0])
+ .addMBB(TBB);
if (!FBB)
return 1;
diff --git a/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll b/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll
index 44b8cd08d1c..4570c277ad7 100644
--- a/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll
+++ b/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll
@@ -67,9 +67,9 @@ back:
; CHECK-LABEL: test2:
; CHECK: block BB2_2{{$}}
-; CHECK: br_if BB2_2, {{.*}}
+; CHECK: br_if {{.*}}, BB2_2{{$}}
; CHECK: BB2_1:
-; CHECK: br_if BB2_1, (get_local 10){{$}}
+; CHECK: br_if (get_local 10), BB2_1{{$}}
; CHECK: BB2_2:
; CHECK: return{{$}}
define void @test2(double* nocapture %p, i32 %n) {
@@ -101,10 +101,10 @@ for.end:
; CHECK: block BB3_5{{$}}
; CHECK: block BB3_4{{$}}
; CHECK: block BB3_2{{$}}
-; CHECK: br_if BB3_2, (get_local 4){{$}}
+; CHECK: br_if (get_local 4), BB3_2{{$}}
; CHECK: br BB3_5{{$}}
; CHECK: BB3_2:
-; CHECK: br_if BB3_4, (get_local 6){{$}}
+; CHECK: br_if (get_local 6), BB3_4{{$}}
; CHECK: br BB3_5{{$}}
; CHECK: BB3_4:
; CHECK: BB3_5:
@@ -134,7 +134,7 @@ exit:
; CHECK-LABEL: triangle:
; CHECK: block BB4_2{{$}}
-; CHECK: br_if BB4_2, (get_local 3){{$}}
+; CHECK: br_if (get_local 3), BB4_2{{$}}
; CHECK: BB4_2:
; CHECK: return (get_local 2){{$}}
define i32 @triangle(i32* %p, i32 %a) {
@@ -153,7 +153,7 @@ exit:
; CHECK-LABEL: diamond:
; CHECK: block BB5_3{{$}}
; CHECK: block BB5_2{{$}}
-; CHECK: br_if BB5_2, (get_local 3){{$}}
+; CHECK: br_if (get_local 3), BB5_2{{$}}
; CHECK: br BB5_3{{$}}
; CHECK: BB5_2:
; CHECK: BB5_3:
@@ -201,7 +201,7 @@ loop:
; CHECK-NOT: br
; CHECK: BB8_1:
; CHECK: loop BB8_2{{$}}
-; CHECK: br_if BB8_1, (get_local 3){{$}}
+; CHECK: br_if (get_local 3), BB8_1{{$}}
; CHECK: return (get_local 2){{$}}
define i32 @simple_loop(i32* %p, i32 %a) {
entry:
@@ -219,8 +219,8 @@ exit:
; CHECK-LABEL: doubletriangle:
; CHECK: block BB9_4{{$}}
; CHECK: block BB9_3{{$}}
-; CHECK: br_if BB9_4, (get_local 4){{$}}
-; CHECK: br_if BB9_3, (get_local 6){{$}}
+; CHECK: br_if (get_local 4), BB9_4{{$}}
+; CHECK: br_if (get_local 6), BB9_3{{$}}
; CHECK: BB9_3:
; CHECK: BB9_4:
; CHECK: return (get_local 3){{$}}
@@ -247,10 +247,10 @@ exit:
; CHECK-LABEL: ifelse_earlyexits:
; CHECK: block BB10_4{{$}}
; CHECK: block BB10_2{{$}}
-; CHECK: br_if BB10_2, (get_local 4){{$}}
+; CHECK: br_if (get_local 4), BB10_2{{$}}
; CHECK: br BB10_4{{$}}
; CHECK: BB10_2:
-; CHECK: br_if BB10_4, (get_local 6){{$}}
+; CHECK: br_if (get_local 6), BB10_4{{$}}
; CHECK: BB10_4:
; CHECK: return (get_local 3){{$}}
define i32 @ifelse_earlyexits(i32 %a, i32 %b, i32* %p) {
OpenPOWER on IntegriCloud