1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Analysis/Dominators/basic.ll
Chandler Carruth 354bc97f39 [PM] Port domtree to the new pass manager (at last).
This adds the domtree analysis to the new pass manager. The analysis
returns the same DominatorTree result entity used by the old pass
manager and essentially all of the code is shared. We just have
different boilerplate for running and printing the analysis.

I've converted one test to run in both modes just to make sure this is
exercised while both are live in the tree.

llvm-svn: 225969
2015-01-14 10:19:28 +00:00

61 lines
1.1 KiB
LLVM

; RUN: opt < %s -domtree -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=CHECK-OLDPM
; RUN: opt < %s -disable-output -passes='print<domtree>' 2>&1 | FileCheck %s -check-prefix=CHECK -check-prefix=CHECK-NEWPM
define void @test1() {
; CHECK-OLDPM-LABEL: 'Dominator Tree Construction' for function 'test1':
; CHECK-NEWPM-LABEL: DominatorTree 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-OLDPM-LABEL: 'Dominator Tree Construction' for function 'test2':
; CHECK-NEWPM-LABEL: DominatorTree 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
}