forked from OSchip/llvm-project
[pipelines] OptimizerEarlyEPCallbacks for ThinLTO prelink
Similar to OptimizerLastEPCallbacks workaround added D96320. Probably NFC as-is, I don't see anything hooked with this callbacks yet, but I we are looking to move sanitizers. Reviewed By: aeubanks, MaskRay Differential Revision: https://reviews.llvm.org/D133333
This commit is contained in:
parent
e28a5ceca9
commit
181d408186
|
@ -1392,9 +1392,11 @@ PassBuilder::buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
|
|||
PGOOpt->Action == PGOOptions::SampleUse)
|
||||
MPM.addPass(PseudoProbeUpdatePass());
|
||||
|
||||
// Handle OptimizerLastEPCallbacks added by clang on PreLink. Actual
|
||||
// optimization is going to be done in PostLink stage, but clang can't
|
||||
// add callbacks there in case of in-process ThinLTO called by linker.
|
||||
// Handle Optimizer{Early,Last}EPCallbacks added by clang on PreLink. Actual
|
||||
// optimization is going to be done in PostLink stage, but clang can't add
|
||||
// callbacks there in case of in-process ThinLTO called by linker.
|
||||
for (auto &C : OptimizerEarlyEPCallbacks)
|
||||
C(MPM, Level);
|
||||
for (auto &C : OptimizerLastEPCallbacks)
|
||||
C(MPM, Level);
|
||||
|
||||
|
|
|
@ -18,6 +18,12 @@
|
|||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-PRELINK-O,CHECK-PRELINK-O-NODIS,CHECK-EP-PIPELINE-START
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-early='no-op-module' %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-PRELINK-O,CHECK-PRELINK-O-NODIS,CHECK-EP-OPT-EARLY
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-last='no-op-module' %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-PRELINK-O,CHECK-PRELINK-O-NODIS,CHECK-EP-OPT-LAST
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||
; RUN: -passes='thinlto-pre-link<Os>' -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,CHECK-PRELINK-O,CHECK-PRELINK-O-NODIS
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||
|
@ -37,6 +43,12 @@
|
|||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-early='no-op-module' \
|
||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-EARLY
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-last='no-op-module' \
|
||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-LAST
|
||||
; RUN: opt -disable-verify -verify-cfg-preserved=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||
; RUN: -passes='thinlto<Os>' -S %s 2>&1 \
|
||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-Os,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-Os
|
||||
|
@ -195,6 +207,7 @@
|
|||
; CHECK-POSTLINK-O-NEXT: Running pass: EliminateAvailableExternallyPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: RecomputeGlobalsAAPass
|
||||
; CHECK-POST-EP-OPT-EARLY-NEXT: Running pass: NoOpModulePass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: Float2IntPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: LowerConstantIntrinsicsPass
|
||||
; CHECK-EXT: Running pass: {{.*}}::Bye
|
||||
|
@ -229,10 +242,13 @@
|
|||
; CHECK-POSTLINK-O-NEXT: Running pass: DivRemPairsPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: TailCallElimPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: SimplifyCFGPass
|
||||
; CHECK-POST-EP-OPT-LAST-NEXT: Running pass: NoOpModulePass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: GlobalDCEPass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: ConstantMergePass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: CGProfilePass
|
||||
; CHECK-POSTLINK-O-NEXT: Running pass: RelLookupTableConverterPass
|
||||
; CHECK-EP-OPT-EARLY-NEXT: Running pass: NoOpModulePass
|
||||
; CHECK-EP-OPT-LAST-NEXT: Running pass: NoOpModulePass
|
||||
; CHECK-O-NEXT: Running pass: AnnotationRemarksPass on foo
|
||||
; CHECK-PRELINK-O-NEXT: Running pass: CanonicalizeAliasesPass
|
||||
; CHECK-PRELINK-O-NEXT: Running pass: NameAnonGlobalPass
|
||||
|
|
Loading…
Reference in New Issue