[llvm] b74248d - [InstCombine] Pass RPOT to InstCombiner (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 26 06:18:16 PDT 2024
Author: Nikita Popov
Date: 2024-08-26T15:17:38+02:00
New Revision: b74248dae880793b0486483126b385ca0eafc896
URL: https://github.com/llvm/llvm-project/commit/b74248dae880793b0486483126b385ca0eafc896
DIFF: https://github.com/llvm/llvm-project/commit/b74248dae880793b0486483126b385ca0eafc896.diff
LOG: [InstCombine] Pass RPOT to InstCombiner (NFC)
To make use of it in a followup change.
Added:
Modified:
llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
llvm/lib/Transforms/InstCombine/InstCombineInternal.h
llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Transforms/InstCombine/InstCombiner.h b/llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
index ed2e7f58ca853c..c2ea88a107c32a 100644
--- a/llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
+++ b/llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
@@ -84,6 +84,8 @@ class LLVM_LIBRARY_VISIBILITY InstCombiner {
// combining and will be updated to reflect any changes.
LoopInfo *LI;
+ ReversePostOrderTraversal<BasicBlock *> &RPOT;
+
bool MadeIRChange = false;
/// Edges that are known to never be taken.
@@ -98,12 +100,13 @@ class LLVM_LIBRARY_VISIBILITY InstCombiner {
TargetLibraryInfo &TLI, TargetTransformInfo &TTI,
DominatorTree &DT, OptimizationRemarkEmitter &ORE,
BlockFrequencyInfo *BFI, BranchProbabilityInfo *BPI,
- ProfileSummaryInfo *PSI, const DataLayout &DL, LoopInfo *LI)
+ ProfileSummaryInfo *PSI, const DataLayout &DL, LoopInfo *LI,
+ ReversePostOrderTraversal<BasicBlock *> &RPOT)
: TTI(TTI), Builder(Builder), Worklist(Worklist),
MinimizeSize(MinimizeSize), AA(AA), AC(AC), TLI(TLI), DT(DT), DL(DL),
SQ(DL, &TLI, &DT, &AC, nullptr, /*UseInstrInfo*/ true,
/*CanUseUndef*/ true, &DC),
- ORE(ORE), BFI(BFI), BPI(BPI), PSI(PSI), LI(LI) {}
+ ORE(ORE), BFI(BFI), BPI(BPI), PSI(PSI), LI(LI), RPOT(RPOT) {}
virtual ~InstCombiner() = default;
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
index a0e846c3b5a566..b3957b760b4a29 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
+++ b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
@@ -66,15 +66,15 @@ class LLVM_LIBRARY_VISIBILITY InstCombinerImpl final
TargetLibraryInfo &TLI, TargetTransformInfo &TTI,
DominatorTree &DT, OptimizationRemarkEmitter &ORE,
BlockFrequencyInfo *BFI, BranchProbabilityInfo *BPI,
- ProfileSummaryInfo *PSI, const DataLayout &DL, LoopInfo *LI)
+ ProfileSummaryInfo *PSI, const DataLayout &DL, LoopInfo *LI,
+ ReversePostOrderTraversal<BasicBlock *> &RPOT)
: InstCombiner(Worklist, Builder, MinimizeSize, AA, AC, TLI, TTI, DT, ORE,
- BFI, BPI, PSI, DL, LI) {}
+ BFI, BPI, PSI, DL, LI, RPOT) {}
virtual ~InstCombinerImpl() = default;
/// Perform early cleanup and prepare the InstCombine worklist.
- bool prepareWorklist(Function &F,
- ReversePostOrderTraversal<BasicBlock *> &RPOT);
+ bool prepareWorklist(Function &F);
/// Run the combiner over the entire worklist until it is empty.
///
diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
index c3f79fe4f901ad..8a96d1d0fb4c90 100644
--- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
@@ -5234,8 +5234,7 @@ class AliasScopeTracker {
/// them to the worklist (this significantly speeds up instcombine on code where
/// many instructions are dead or constant). Additionally, if we find a branch
/// whose condition is a known constant, we only visit the reachable successors.
-bool InstCombinerImpl::prepareWorklist(
- Function &F, ReversePostOrderTraversal<BasicBlock *> &RPOT) {
+bool InstCombinerImpl::prepareWorklist(Function &F) {
bool MadeIRChange = false;
SmallPtrSet<BasicBlock *, 32> LiveBlocks;
SmallVector<Instruction *, 128> InstrsForInstructionWorklist;
@@ -5417,9 +5416,9 @@ static bool combineInstructionsOverFunction(
<< F.getName() << "\n");
InstCombinerImpl IC(Worklist, Builder, F.hasMinSize(), AA, AC, TLI, TTI, DT,
- ORE, BFI, BPI, PSI, DL, LI);
+ ORE, BFI, BPI, PSI, DL, LI, RPOT);
IC.MaxArraySizeForCombine = MaxArraySize;
- bool MadeChangeInThisIteration = IC.prepareWorklist(F, RPOT);
+ bool MadeChangeInThisIteration = IC.prepareWorklist(F);
MadeChangeInThisIteration |= IC.run();
if (!MadeChangeInThisIteration)
break;
More information about the llvm-commits
mailing list