[llvm] a73e4ce - [LoopFuse] Change DT to reference in FusionCandidate struct. NFC
Anna Thomas via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 2 11:57:12 PST 2022
Author: Anna Thomas
Date: 2022-02-02T14:55:37-05:00
New Revision: a73e4ce6a59b01f0e37037761c1e6889d539d233
URL: https://github.com/llvm/llvm-project/commit/a73e4ce6a59b01f0e37037761c1e6889d539d233
DIFF: https://github.com/llvm/llvm-project/commit/a73e4ce6a59b01f0e37037761c1e6889d539d233.diff
LOG: [LoopFuse] Change DT to reference in FusionCandidate struct. NFC
Assertion added in f50821cff0 confirms that the DT is indeed nonnull.
Change it to a reference instead of a pointer to make this explicit in
FusionCandidate.
Suggested in D118472.
Added:
Modified:
llvm/lib/Transforms/Scalar/LoopFuse.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/LoopFuse.cpp b/llvm/lib/Transforms/Scalar/LoopFuse.cpp
index bf4d275e04ba9..84b02a060fb72 100644
--- a/llvm/lib/Transforms/Scalar/LoopFuse.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopFuse.cpp
@@ -178,12 +178,12 @@ struct FusionCandidate {
/// FusionCandidateCompare function, required by FusionCandidateSet to
/// determine where the FusionCandidate should be inserted into the set. These
/// are used to establish ordering of the FusionCandidates based on dominance.
- const DominatorTree *DT;
+ DominatorTree &DT;
const PostDominatorTree *PDT;
OptimizationRemarkEmitter &ORE;
- FusionCandidate(Loop *L, const DominatorTree *DT,
+ FusionCandidate(Loop *L, DominatorTree &DT,
const PostDominatorTree *PDT, OptimizationRemarkEmitter &ORE,
TTI::PeelingPreferences PP)
: Preheader(L->getLoopPreheader()), Header(L->getHeader()),
@@ -192,7 +192,6 @@ struct FusionCandidate {
GuardBranch(L->getLoopGuardBranch()), PP(PP), AbleToPeel(canPeel(L)),
Peeled(false), DT(DT), PDT(PDT), ORE(ORE) {
- assert(DT && "Expected non-null DT!");
// Walk over all blocks in the loop and check for conditions that may
// prevent fusion. For each block, walk over all instructions and collect
// the memory reads and writes If any instructions that prevent fusion are
@@ -391,7 +390,7 @@ struct FusionCandidateCompare {
/// IF RHS dominates LHS and LHS post-dominates RHS, return false;
bool operator()(const FusionCandidate &LHS,
const FusionCandidate &RHS) const {
- const DominatorTree *DT = LHS.DT;
+ const DominatorTree *DT = &(LHS.DT);
BasicBlock *LHSEntryBlock = LHS.getEntryBlock();
BasicBlock *RHSEntryBlock = RHS.getEntryBlock();
@@ -646,7 +645,7 @@ struct LoopFuser {
for (Loop *L : LV) {
TTI::PeelingPreferences PP =
gatherPeelingPreferences(L, SE, TTI, None, None);
- FusionCandidate CurrCand(L, &DT, &PDT, ORE, PP);
+ FusionCandidate CurrCand(L, DT, &PDT, ORE, PP);
if (!CurrCand.isEligibleForFusion(SE))
continue;
@@ -991,7 +990,7 @@ struct LoopFuser {
FuseCounter);
FusionCandidate FusedCand(
- performFusion((Peel ? FC0Copy : *FC0), *FC1), &DT, &PDT, ORE,
+ performFusion((Peel ? FC0Copy : *FC0), *FC1), DT, &PDT, ORE,
FC0Copy.PP);
FusedCand.verify();
assert(FusedCand.isEligibleForFusion(SE) &&
More information about the llvm-commits
mailing list