From 8f9915e419f46351170998290a7a1a43f839ca10 Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Mon, 16 Nov 2015 21:04:51 +0000 Subject: [PATCH] [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253249 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../WebAssembly/WebAssemblyInstrControl.td | 4 ++-- .../WebAssembly/WebAssemblyInstrInfo.cpp | 8 +++---- test/CodeGen/WebAssembly/cfg-stackify.ll | 22 +++++++++---------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/Target/WebAssembly/WebAssemblyInstrControl.td b/lib/Target/WebAssembly/WebAssemblyInstrControl.td index af73a93c207..dd63e98efe9 100644 --- a/lib/Target/WebAssembly/WebAssemblyInstrControl.td +++ b/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/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp b/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp index fe27b1ac669..ed30b535480 100644 --- a/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp +++ b/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/test/CodeGen/WebAssembly/cfg-stackify.ll b/test/CodeGen/WebAssembly/cfg-stackify.ll index 44b8cd08d1c..4570c277ad7 100644 --- a/test/CodeGen/WebAssembly/cfg-stackify.ll +++ b/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) { -- 2.34.1