[llvm] [PredicateInfo] Support `PredicateInfo` by adding `PHI` nodes that pick up info from created branch predicates (PR #151132)
Rajveer Singh Bharadwaj via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 08:09:55 PST 2025
================
@@ -460,6 +471,114 @@ void PredicateInfoBuilder::processSwitch(
}
}
+void PredicateInfoBuilder::identifyPHICandidates(
+ SmallVectorImpl<Value *> &OpsToRename) {
+ for (Value *Op : OpsToRename) {
+ const auto &ValueInfo = getValueInfo(Op);
+ SmallPtrSet<BasicBlock *, 4> DefiningBlocks;
+ for (const auto *PInfo : ValueInfo.Infos) {
+ if (auto *PBranch = dyn_cast<PredicateBranch>(PInfo)) {
+ DefiningBlocks.insert(PBranch->From);
+ } else if (auto *PSwitch = dyn_cast<PredicateSwitch>(PInfo)) {
+ DefiningBlocks.insert(PSwitch->From);
+ }
+ }
+
+ if (DefiningBlocks.size() > 1) {
+ SmallPtrSet<BasicBlock *, 8> PHIBlocks;
+ needsPHIInsertion(Op, DefiningBlocks, PHIBlocks);
+ for (BasicBlock *PHIBlock : PHIBlocks) {
+ PHICandidates[PHIBlock].push_back(Op);
+ }
+ }
+ }
+}
+
+void PredicateInfoBuilder::needsPHIInsertion(
+ Value *Op, const SmallPtrSetImpl<BasicBlock *> &DefiningBlocks,
+ SmallPtrSetImpl<BasicBlock *> &PHIBlocks) {
+ IDFCalculator<false> IDF(DT);
----------------
Rajveer100 wrote:
Won't this affect the direction? I will still check and see.
https://github.com/llvm/llvm-project/pull/151132
More information about the llvm-commits
mailing list