diff options
author | Florian Hahn <flo@fhahn.com> | 2023-11-17 09:57:05 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-17 09:57:05 +0000 |
commit | 1c05fe350064aa3a1784bb09829a07d501842d97 (patch) | |
tree | ee49b2d5c3ae8828107759f1bdb00f521202ac24 | |
parent | b4c1421466bd1a8b024d557b259eb4406073be8d (diff) | |
download | llvm-1c05fe350064aa3a1784bb09829a07d501842d97.zip llvm-1c05fe350064aa3a1784bb09829a07d501842d97.tar.gz llvm-1c05fe350064aa3a1784bb09829a07d501842d97.tar.bz2 |
[InstCombine] Pass InstCombineOptions instead of separate flags (NFC). (#72566)
This makes it simpler to pass additional flags/options in the future.
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstructionCombining.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp index 463a7b5..5859f58 100644 --- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp +++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp @@ -4367,8 +4367,7 @@ static bool combineInstructionsOverFunction( Function &F, InstructionWorklist &Worklist, AliasAnalysis *AA, AssumptionCache &AC, TargetLibraryInfo &TLI, TargetTransformInfo &TTI, DominatorTree &DT, OptimizationRemarkEmitter &ORE, BlockFrequencyInfo *BFI, - ProfileSummaryInfo *PSI, unsigned MaxIterations, bool VerifyFixpoint, - LoopInfo *LI) { + ProfileSummaryInfo *PSI, LoopInfo *LI, const InstCombineOptions &Opts) { auto &DL = F.getParent()->getDataLayout(); /// Builder - This is an IRBuilder that automatically inserts new @@ -4394,8 +4393,8 @@ static bool combineInstructionsOverFunction( while (true) { ++Iteration; - if (Iteration > MaxIterations && !VerifyFixpoint) { - LLVM_DEBUG(dbgs() << "\n\n[IC] Iteration limit #" << MaxIterations + if (Iteration > Opts.MaxIterations && !Opts.VerifyFixpoint) { + LLVM_DEBUG(dbgs() << "\n\n[IC] Iteration limit #" << Opts.MaxIterations << " on " << F.getName() << " reached; stopping without verifying fixpoint\n"); break; @@ -4414,10 +4413,10 @@ static bool combineInstructionsOverFunction( break; MadeIRChange = true; - if (Iteration > MaxIterations) { + if (Iteration > Opts.MaxIterations) { report_fatal_error( "Instruction Combining did not reach a fixpoint after " + - Twine(MaxIterations) + " iterations"); + Twine(Opts.MaxIterations) + " iterations"); } } @@ -4468,8 +4467,7 @@ PreservedAnalyses InstCombinePass::run(Function &F, &AM.getResult<BlockFrequencyAnalysis>(F) : nullptr; if (!combineInstructionsOverFunction(F, Worklist, AA, AC, TLI, TTI, DT, ORE, - BFI, PSI, Options.MaxIterations, - Options.VerifyFixpoint, LI)) + BFI, PSI, LI, Options)) // No changes, all analyses are preserved. return PreservedAnalyses::all(); @@ -4518,9 +4516,7 @@ bool InstructionCombiningPass::runOnFunction(Function &F) { nullptr; return combineInstructionsOverFunction(F, Worklist, AA, AC, TLI, TTI, DT, ORE, - BFI, PSI, - InstCombineDefaultMaxIterations, - /*VerifyFixpoint */ false, LI); + BFI, PSI, LI, InstCombineOptions()); } char InstructionCombiningPass::ID = 0; |