[llvm] beac727 - IROutliner: Do not look at use lists of constant phi inputs (#135019)

via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 13 03:12:50 PDT 2025


Author: Matt Arsenault
Date: 2025-04-13T12:12:46+02:00
New Revision: beac727e48346efb84558696fb080b1bbd07e234

URL: https://github.com/llvm/llvm-project/commit/beac727e48346efb84558696fb080b1bbd07e234
DIFF: https://github.com/llvm/llvm-project/commit/beac727e48346efb84558696fb080b1bbd07e234.diff

LOG: IROutliner: Do not look at use lists of constant phi inputs (#135019)

Theoretically this does a worse job with globals but this is not
covered by existing tests

Added: 
    

Modified: 
    llvm/lib/Transforms/IPO/IROutliner.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/IPO/IROutliner.cpp b/llvm/lib/Transforms/IPO/IROutliner.cpp
index 8c5946fb07c65..eec869d57a6db 100644
--- a/llvm/lib/Transforms/IPO/IROutliner.cpp
+++ b/llvm/lib/Transforms/IPO/IROutliner.cpp
@@ -1126,7 +1126,8 @@ static void analyzeExitPHIsForOutputUses(
     // outside of the single PHINode we should not skip over it.
     for (unsigned Idx : IncomingVals) {
       Value *V = PN.getIncomingValue(Idx);
-      if (outputHasNonPHI(V, Idx, PN, PotentialExitsFromRegion, RegionBlocks)) {
+      if (!isa<Constant>(V) &&
+          outputHasNonPHI(V, Idx, PN, PotentialExitsFromRegion, RegionBlocks)) {
         OutputsWithNonPhiUses.insert(V);
         OutputsReplacedByPHINode.erase(V);
         continue;


        


More information about the llvm-commits mailing list