[PATCH] D136463: [SWP] Recognize mem carried dep with different base

Sumanth Gundapaneni via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 15 13:17:19 PST 2022


sgundapa added inline comments.


================
Comment at: llvm/lib/CodeGen/MachinePipeliner.cpp:2282
+  MachineInstr *DefD = MRI.getVRegDef(BaseOpD->getReg());
+  if (!DefS || !DefD || !DefS->isPHI() || !DefD->isPHI())
+    return true;
----------------
Too late to comment, but I believe this if condition will mark wrong loop carried dependences.

Eg:
SU(0):   %62:intregs = PHI %12:intregs, %bb.8, %85:intregs, %bb.9
SU(1):   %63:intregs = L2_loadrh_io %62:intregs, 0 :: (load (s16) from %ir.arrayidx.phi)
......
......
......
SU(5):   %85:intregs = S2_storerh_pi %62:intregs(tied-def 0), 8, %66:intregs :: (store (s16) into %ir.arrayidx.phi)
.......
.......
SU(10):   S2_storerh_io %85:intregs, -6, %72:intregs :: (store (s16) into %ir.arrayidx.phi + 2)


SU1-SU10 will me marked as an LCD



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136463/new/

https://reviews.llvm.org/D136463



More information about the llvm-commits mailing list