1 // Test that we print pass structure with new and legacy PM. 2 // RUN: %clang -fexperimental-new-pass-manager -fdebug-pass-structure -O3 -S -emit-llvm %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=NEWPM 3 // RUN: %clang -flegacy-pass-manager -fdebug-pass-structure -O0 -S -emit-llvm %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=LEGACYPM 4 // REQUIRES: asserts 5 6 // NEWPM: Annotation2MetadataPass on [module] 7 // NEWPM-NEXT: ForceFunctionAttrsPass on [module] 8 // NEWPM-NEXT: InferFunctionAttrsPass on [module] 9 // NEWPM-NEXT: InnerAnalysisManagerProxy<{{.*}}> analysis on [module] 10 // NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module] 11 // NEWPM-NEXT: OpenMPOptPass on [module] 12 // NEWPM-NEXT: IPSCCPPass on [module] 13 // NEWPM-NEXT: CalledValuePropagationPass on [module] 14 // NEWPM-NEXT: GlobalOptPass on [module] 15 // NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module] 16 // NEWPM-NEXT: DeadArgumentEliminationPass on [module] 17 // NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module] 18 // NEWPM-NEXT: ModuleInlinerWrapperPass on [module] 19 // NEWPM-NEXT: InlineAdvisorAnalysis analysis on [module] 20 // NEWPM-NEXT: RequireAnalysisPass<{{.*}}> on [module] 21 // NEWPM-NEXT: GlobalsAA analysis on [module] 22 // NEWPM-NEXT: CallGraphAnalysis analysis on [module] 23 // NEWPM-NEXT: RequireAnalysisPass<{{.*}}> on [module] 24 // NEWPM-NEXT: ProfileSummaryAnalysis analysis on [module] 25 // NEWPM-NEXT: ModuleToPostOrderCGSCCPassAdaptor on [module] 26 // NEWPM-NEXT: InnerAnalysisManagerProxy<{{.*}}> analysis on [module] 27 // NEWPM-NEXT: LazyCallGraphAnalysis analysis on [module] 28 // NEWPM-NEXT: GlobalOptPass on [module] 29 // NEWPM-NEXT: GlobalDCEPass on [module] 30 // NEWPM-NEXT: EliminateAvailableExternallyPass on [module] 31 // NEWPM-NEXT: ReversePostOrderFunctionAttrsPass on [module] 32 // NEWPM-NEXT: RequireAnalysisPass<{{.*}}> on [module] 33 // NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module] 34 // NEWPM-NEXT: CGProfilePass on [module] 35 // NEWPM-NEXT: GlobalDCEPass on [module] 36 // NEWPM-NEXT: ConstantMergePass on [module] 37 // NEWPM-NEXT: RelLookupTableConverterPass on [module] 38 // NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module] 39 // NEWPM-NEXT: PrintModulePass on [module] 40 41 // LEGACYPM: Pass Arguments: 42 43