aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2023-11-17 09:57:05 +0000
committerGitHub <noreply@github.com>2023-11-17 09:57:05 +0000
commit1c05fe350064aa3a1784bb09829a07d501842d97 (patch)
treeee49b2d5c3ae8828107759f1bdb00f521202ac24
parentb4c1421466bd1a8b024d557b259eb4406073be8d (diff)
downloadllvm-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.cpp18
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;