mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
b987f39d75
Printing pass manager invocations is fairly verbose and not super useful. This allows us to remove DebugLogging from pass managers and PassBuilder since all logging (aside from analysis managers) goes through instrumentation now. This has the downside of never being able to print the top level pass manager via instrumentation, but that seems like a minor downside. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D101797
52 lines
1.5 KiB
LLVM
52 lines
1.5 KiB
LLVM
; Basic test to check that DominatorTreeAnalysis is preserved by IPSCCP and
|
|
; the following analysis can re-use it. The test contains two trivial functions
|
|
; IPSCCP can simplify, so we can test the case where IPSCCP makes changes.
|
|
|
|
; RUN: opt -disable-verify -debug-pass-manager \
|
|
; RUN: -passes='function(require<domtree>,require<postdomtree>),ipsccp,function(require<domtree>,require<postdomtree>)' -S %s 2>&1 \
|
|
; RUN: | FileCheck -check-prefixes='IR,NEW-PM' %s
|
|
|
|
; RUN: opt -passes='function(require<postdomtree>),ipsccp,function(verify<domtree>)' -S %s | FileCheck -check-prefixes='IR' %s
|
|
|
|
; NEW-PM: Running analysis: DominatorTreeAnalysis on f1
|
|
; NEW-PM: Running analysis: PostDominatorTreeAnalysis on f1
|
|
; NEW-PM: Running analysis: DominatorTreeAnalysis on f2
|
|
; NEW-PM: Running analysis: PostDominatorTreeAnalysis on f2
|
|
; NEW-PM: Running pass: IPSCCPPass
|
|
; NEW-PM-DAG: Running analysis: AssumptionAnalysis on f1
|
|
; NEW-PM-DAG: Running analysis: AssumptionAnalysis on f2
|
|
; NEW-PM-NOT: Running analysis: AssumptionAnalysis
|
|
|
|
; IR-LABEL: @f1
|
|
; IR-LABEL: entry:
|
|
; IR-NEXT: br label %bb2
|
|
; IR-LABEL: bb2:
|
|
; IR-NEXT: undef
|
|
|
|
; IR-LABEL: @f2
|
|
; IR-NOT: icmp
|
|
; IR: br label %bbtrue
|
|
; IR-LABEL: bbtrue:
|
|
; IR-NEXT: ret i32 0
|
|
define internal i32 @f1() readnone {
|
|
entry:
|
|
br i1 false, label %bb1, label %bb2
|
|
bb1:
|
|
ret i32 10
|
|
bb2:
|
|
ret i32 10
|
|
}
|
|
|
|
define i32 @f2(i32 %n) {
|
|
%i = call i32 @f1()
|
|
%cmp = icmp eq i32 %i, 10
|
|
br i1 %cmp, label %bbtrue, label %bbfalse
|
|
|
|
bbtrue:
|
|
ret i32 0
|
|
|
|
bbfalse:
|
|
%res = add i32 %n, %i
|
|
ret i32 %res
|
|
}
|