[llvm] [SLP]Make PHICompare comparator follow weak strict ordering requirement (PR #110529)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 11:14:13 PDT 2024


================
@@ -5454,21 +5470,60 @@ BoUpSLP::getReorderingData(const TreeEntry &TE, bool TopToBottom) {
         return false;
       auto *FirstUserOfPhi1 = cast<Instruction>(*V1->user_begin());
       auto *FirstUserOfPhi2 = cast<Instruction>(*V2->user_begin());
-      if (auto *IE1 = dyn_cast<InsertElementInst>(FirstUserOfPhi1))
-        if (auto *IE2 = dyn_cast<InsertElementInst>(FirstUserOfPhi2)) {
-          if (!areTwoInsertFromSameBuildVector(
-                  IE1, IE2,
-                  [](InsertElementInst *II) { return II->getOperand(0); }))
-            return I1 < I2;
+      if (FirstUserOfPhi1->getParent() != FirstUserOfPhi2->getParent())
+        return DT->dominates(FirstUserOfPhi1->getParent(),
----------------
efriedma-quic wrote:

dominates() is not a strict weak ordering.  Use getDFSNumIn() or something like that.

https://github.com/llvm/llvm-project/pull/110529


More information about the llvm-commits mailing list