[llvm] [PredicateInfo] Remove unnecessary EdgeUsesOnly set (NFC) (PR #144912)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 19 08:17:51 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Nikita Popov (nikic)
<details>
<summary>Changes</summary>
As far as I can tell, this set is pointless: It just represents whether the target block has multiple predecessors, and the way it is constructed and queried, we're not even reducing the number of getSinglePredecessor() calls or something like that.
---
Full diff: https://github.com/llvm/llvm-project/pull/144912.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Utils/PredicateInfo.cpp (+1-9)
``````````diff
diff --git a/llvm/lib/Transforms/Utils/PredicateInfo.cpp b/llvm/lib/Transforms/Utils/PredicateInfo.cpp
index 4c87babbfb6f3..4a0faab00ccaf 100644
--- a/llvm/lib/Transforms/Utils/PredicateInfo.cpp
+++ b/llvm/lib/Transforms/Utils/PredicateInfo.cpp
@@ -253,10 +253,6 @@ class PredicateInfoBuilder {
// whether it returned a valid result.
DenseMap<Value *, unsigned int> ValueInfoNums;
- // The set of edges along which we can only handle phi uses, due to critical
- // edges.
- DenseSet<std::pair<BasicBlock *, BasicBlock *>> EdgeUsesOnly;
-
ValueInfo &getOrCreateValueInfo(Value *);
const ValueInfo &getValueInfo(Value *) const;
@@ -459,8 +455,6 @@ void PredicateInfoBuilder::processBranch(
PredicateBase *PB =
new PredicateBranch(V, BranchBB, Succ, Cond, TakenEdge);
addInfoFor(OpsToRename, V, PB);
- if (!Succ->getSinglePredecessor())
- EdgeUsesOnly.insert({BranchBB, Succ});
}
}
}
@@ -487,8 +481,6 @@ void PredicateInfoBuilder::processSwitch(
PredicateSwitch *PS = new PredicateSwitch(
Op, SI->getParent(), TargetBlock, C.getCaseValue(), SI);
addInfoFor(OpsToRename, Op, PS);
- if (!TargetBlock->getSinglePredecessor())
- EdgeUsesOnly.insert({BranchBB, TargetBlock});
}
}
}
@@ -637,7 +629,7 @@ void PredicateInfoBuilder::renameUses(SmallVectorImpl<Value *> &OpsToRename) {
// block, and handle it specially. We know that it goes last, and only
// dominate phi uses.
auto BlockEdge = getBlockEdge(PossibleCopy);
- if (EdgeUsesOnly.count(BlockEdge)) {
+ if (!BlockEdge.second->getSinglePredecessor()) {
VD.LocalNum = LN_Last;
auto *DomNode = DT.getNode(BlockEdge.first);
if (DomNode) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/144912
More information about the llvm-commits
mailing list