[clang] [clang] Add optional pass to remove UBSAN traps using PGO (PR #84214)
Arthur Eubanks via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 7 11:12:32 PST 2024
================
@@ -744,6 +750,21 @@ static void addSanitizers(const Triple &TargetTriple,
// LastEP does not need GlobalsAA.
PB.registerOptimizerLastEPCallback(SanitizersCallback);
}
+
+ if (ClRemoveTraps) {
+ // We can optimize after inliner, and PGO profile matching. The hook below
+ // is called from `buildModuleOptimizationPipeline` just after profile use,
+ // and inliner is a part of `buildModuleSimplificationPipeline`, which is
+ // before `buildModuleOptimizationPipeline`.
+ PB.registerOptimizerEarlyEPCallback([&](ModulePassManager &MPM,
----------------
aeubanks wrote:
profile matching happens right before the inliner/function simplification pipeline (after the initial `EarlyFPM` and `GlobalCleanupPM` cleanup)
https://github.com/llvm/llvm-project/pull/84214
More information about the cfe-commits
mailing list