Unverified Commit 1c05fe35 authored by Florian Hahn's avatar Florian Hahn Committed by GitHub
Browse files

[InstCombine] Pass InstCombineOptions instead of separate flags (NFC). (#72566)

This makes it simpler to pass additional flags/options in the future.
parent b4c14214
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -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;