| # RUN: llc -mtriple=wasm32-unknown-unknown -start-after xray-instrumentation -wasm-keep-registers %s -o - | FileCheck %s |
| |
| --- |
| # Tests if block/loop/try/catch/end instructions are correctly printed with |
| # their annotations. |
| |
| # CHECK: test0: |
| # CHECK: block |
| # CHECK: try |
| # CHECK: br 0 # 0: down to label1 |
| # CHECK: catch_all # catch0: |
| # CHECK: block |
| # CHECK: br_if 0, 1 # 0: down to label2 |
| # CHECK: loop # label3: |
| # CHECK: br_if 0, 1 # 0: up to label3 |
| # CHECK: end_loop |
| # CHECK: end_block # label2: |
| # CHECK: try |
| # CHECK: rethrow 0 # 0: down to catch1 |
| # CHECK: catch_all # catch1: |
| # CHECK: block |
| # CHECK: try |
| # CHECK: br 0 # 0: down to label6 |
| # CHECK: catch_all # catch2: |
| # CHECK: unreachable |
| # CHECK: end_try # label6: |
| # CHECK: end_block # label5: |
| # CHECK: rethrow 0 # 0: to caller |
| # CHECK: end_try # label4: |
| # CHECK: end_try # label1: |
| # CHECK: end_block # label0: |
| |
| name: test0 |
| liveins: |
| - { reg: '$arguments', reg: '$value_stack' } |
| body: | |
| bb.0: |
| successors: %bb.7, %bb.1 |
| BLOCK 64, implicit-def $value_stack, implicit $value_stack |
| TRY 64, implicit-def $value_stack, implicit $value_stack |
| BR 0, implicit-def $arguments |
| |
| bb.1 (landing-pad): |
| ; predecessors: %bb.0 |
| successors: %bb.2, %bb.3 |
| |
| CATCH_ALL implicit-def $arguments |
| BLOCK 64, implicit-def $value_stack, implicit $value_stack |
| BR_IF 0, 1, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack |
| |
| bb.2: |
| ; predecessors: %bb.1, %bb.2 |
| successors: %bb.2, %bb.3 |
| |
| LOOP 64, implicit-def $value_stack, implicit $value_stack |
| BR_IF 0, 1, implicit-def $arguments |
| |
| bb.3: |
| ; predecessors: %bb.1, %bb.2 |
| successors: %bb.4 |
| |
| END_LOOP implicit-def $value_stack, implicit $value_stack |
| END_BLOCK implicit-def $value_stack, implicit $value_stack |
| TRY 64, implicit-def $value_stack, implicit $value_stack |
| RETHROW 0, implicit-def $arguments |
| |
| bb.4 (landing-pad): |
| ; predecessors: %bb.3 |
| successors: %bb.6, %bb.5 |
| |
| CATCH_ALL implicit-def $arguments |
| BLOCK 64, implicit-def $value_stack, implicit $value_stack |
| TRY 64, implicit-def $value_stack, implicit $value_stack |
| BR 0, implicit-def $arguments |
| |
| bb.5 (landing-pad): |
| ; predecessors: %bb.4 |
| CATCH_ALL implicit-def $arguments |
| UNREACHABLE implicit-def dead $arguments |
| |
| bb.6: |
| ; predecessors: %bb.4 |
| END_TRY implicit-def $value_stack, implicit $value_stack |
| END_BLOCK implicit-def $value_stack, implicit $value_stack |
| RETHROW 0, implicit-def $arguments |
| |
| bb.7: |
| ; predecessors: %bb.0 |
| END_TRY implicit-def $value_stack, implicit $value_stack |
| END_TRY implicit-def $value_stack, implicit $value_stack |
| END_BLOCK implicit-def $value_stack, implicit $value_stack |
| FALLTHROUGH_RETURN_VOID implicit-def dead $arguments |
| END_FUNCTION implicit-def $value_stack, implicit $value_stack |
| ... |