[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