[llvm] StructurizeCFG: Optimize phi insertion during ssa reconstruction (PR #101301)
    Matt Arsenault via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jul 31 01:31:29 PDT 2024
    
    
  
================
@@ -710,10 +714,107 @@ void StructurizeCFG::findUndefBlocks(
   }
 }
 
+// Return true if two PHI nodes have compatible incoming values (for each
+// incoming block, either they have the same incoming value or only one PHI
+// node has a incoming value). And return the union of the incoming values
+// through \p Merged.
+bool StructurizeCFG::isCompatible(const BBValueVector &IncomingA,
+                                  const BBValueVector &IncomingB,
+                                  BBValueVector &Merged) {
+  MapVector<BasicBlock *, Value *> UnionSet;
+  for (auto &V : IncomingA)
+    UnionSet.insert(V);
+
+  for (auto &V : IncomingB) {
----------------
arsenm wrote:
Use C++17 restructuring 
https://github.com/llvm/llvm-project/pull/101301
    
    
More information about the llvm-commits
mailing list