[PATCH] D122125: [PowerPC] generate CTR loops instructions after ISEL

Kai Luo via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 18 19:24:16 PDT 2022


lkail added inline comments.


================
Comment at: llvm/lib/Target/PowerPC/PPCCTRLoops.cpp:52
+#define DEBUG_TYPE "ppc-ctrloops"
+
+namespace {
----------------
Do we have to add stats to count how many loops transformed?


================
Comment at: llvm/lib/Target/PowerPC/PPCCTRLoops.cpp:177
+    // the CTR, we conservatively don't generate a CTR loop.
+    if (isCTRClobber(&*I, false /* CheckReads */))
+      Revert = true;
----------------
nit: `isCTRClobber(&*I, /* CheckReads */ false)`


================
Comment at: llvm/lib/Target/PowerPC/PPCCTRLoops.cpp:184
+       I != Preheader->instr_end(); ++I)
+    if (isCTRClobber(&*I, true /* CheckReads */))
+      Revert = true;
----------------
nit: `isCTRClobber(&*I, /* CheckReads */ true)`


================
Comment at: llvm/lib/Target/PowerPC/PPCCTRLoops.cpp:196
+        // If any instruction clobber CTR, then we can not generate a CTR loop.
+        Revert |= isCTRClobber(&MI, true /* CheckReads */);
+    }
----------------
nit: `isCTRClobber(&MI, /* CheckReads */ true)`


================
Comment at: llvm/lib/Target/PowerPC/PPCCTRLoops.cpp:213
+                                    MachineInstr *Dec) {
+  bool Is32Bit =
+      !Start->getParent()->getParent()->getSubtarget<PPCSubtarget>().isPPC64();
----------------
It's interesting you define `Is32Bit`. Most PowerPC code tend to define `IsPPC64` something like that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122125



More information about the llvm-commits mailing list