mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 15:33:33 +00:00
d39ad60564
Correct, we have *zero* basic testing of the dominator tree in the regression test suite. There is a single test that even prints it out, and that test only checks a single line of the output. There are a handful of tests that check post dominators, but all of those are looking for bugs rather than just exercising the basic machinery. This test is super boring and unexciting. But hey, it's something. I needed there to be something so I could switch the basic test to run with both the old and new pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225936 91177308-0d34-0410-b5e6-96231b3b80d8
58 lines
860 B
LLVM
58 lines
860 B
LLVM
; RUN: opt < %s -domtree -analyze | FileCheck %s
|
|
|
|
define void @test1() {
|
|
; CHECK-LABEL: 'Dominator Tree Construction' for function 'test1':
|
|
; CHECK: [1] %entry
|
|
; CHECK-NEXT: [2] %a
|
|
; CHECK-NEXT: [2] %c
|
|
; CHECK-NEXT: [3] %d
|
|
; CHECK-NEXT: [3] %e
|
|
; CHECK-NEXT: [2] %b
|
|
|
|
entry:
|
|
br i1 undef, label %a, label %b
|
|
|
|
a:
|
|
br label %c
|
|
|
|
b:
|
|
br label %c
|
|
|
|
c:
|
|
br i1 undef, label %d, label %e
|
|
|
|
d:
|
|
ret void
|
|
|
|
e:
|
|
ret void
|
|
}
|
|
|
|
define void @test2() {
|
|
; CHECK-LABEL: 'Dominator Tree Construction' for function 'test2':
|
|
; CHECK: [1] %entry
|
|
; CHECK-NEXT: [2] %a
|
|
; CHECK-NEXT: [3] %b
|
|
; CHECK-NEXT: [4] %c
|
|
; CHECK-NEXT: [5] %d
|
|
; CHECK-NEXT: [5] %ret
|
|
|
|
entry:
|
|
br label %a
|
|
|
|
a:
|
|
br label %b
|
|
|
|
b:
|
|
br i1 undef, label %a, label %c
|
|
|
|
c:
|
|
br i1 undef, label %d, label %ret
|
|
|
|
d:
|
|
br i1 undef, label %a, label %ret
|
|
|
|
ret:
|
|
ret void
|
|
}
|