forked from OSchip/llvm-project
[PM] Teach the module-to-function adaptor to not run function passes
over declarations. This is both quite unproductive and causes things to crash, for example domtree would just assert. I've added a declaration and a domtree run to the basic high-level tests for the new pass manager. llvm-svn: 227724
This commit is contained in:
parent
9973aeede5
commit
9f8d9b613c
|
@ -783,6 +783,9 @@ public:
|
|||
|
||||
PreservedAnalyses PA = PreservedAnalyses::all();
|
||||
for (Function &F : M) {
|
||||
if (F.isDeclaration())
|
||||
continue;
|
||||
|
||||
PreservedAnalyses PassPA = Pass.run(F, FAM);
|
||||
|
||||
// We know that the function pass couldn't have invalidated any other
|
||||
|
|
|
@ -290,6 +290,16 @@
|
|||
; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
|
||||
; CHECK-TIRA: Finished pass manager
|
||||
|
||||
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
|
||||
; RUN: -passes='require<domtree>' \
|
||||
; RUN: | FileCheck %s --check-prefix=CHECK-DT
|
||||
; CHECK-DT: Starting pass manager
|
||||
; CHECK-DT: Running pass: RequireAnalysisPass
|
||||
; CHECK-DT: Running analysis: DominatorTreeAnalysis
|
||||
; CHECK-DT: Finished pass manager
|
||||
|
||||
define void @foo() {
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @bar()
|
||||
|
|
Loading…
Reference in New Issue