1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test/MachineVerifier/verifier-pseudo-terminators.mir
James Y Knight ae071ee9e2 Simplify MachineVerifier's block-successor verification.
There's two properties we want to verify:

1. That the successors returned by analyzeBranch are in the CFG
   successor list, and
2. That there are no extraneous successors are in the CFG successor
   list.

The previous implementation mostly accomplished this, but in a very
convoluted manner.

Differential Revision: https://reviews.llvm.org/D79793
2020-06-06 22:30:51 -04:00

27 lines
798 B
YAML

# RUN: not --crash llc -march=amdgcn -run-pass=verify -o - %s 2>&1 | FileCheck %s
# REQUIRES: amdgpu-registered-target
# Make sure that mismatched successors are caught when a _term
# instruction is used
# CHECK: *** Bad machine code: MBB exits via jump or conditional branch, but its target isn't a CFG successor! ***
# CHECK: *** Bad machine code: MBB has unexpected successors which are not branch targets, fallthrough, EHPads, or inlineasm_br targets. ***
---
name: verifier_pseudo_terminators
body: |
bb.0:
successors: %bb.1
%0:sreg_64 = S_XOR_B64_term undef %1:sreg_64, undef %2:sreg_64, implicit-def $scc
$exec = S_MOV_B64_term %0
S_BRANCH %bb.2
bb.1:
S_SETPC_B64_return undef $sgpr30_sgpr31
bb.2:
S_SETPC_B64_return undef $sgpr30_sgpr31
...