[PATCH] D92174: [VE] Optimize emitSPAdjustment function

Kazushi Marukawa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 27 05:15:25 PST 2020


kaz7 added inline comments.


================
Comment at: llvm/lib/Target/VE/VEFrameLowering.cpp:232-243
+  } else if (isInt<7>(NumBytes)) {
+    // adds.l %s11, NumBytes at lo, %s11
     BuildMI(MBB, MBBI, DL, TII.get(VE::ADDSLri), VE::SX11)
         .addReg(VE::SX11)
         .addImm(NumBytes);
-    return;
+  } else if (isInt<32>(NumBytes)) {
+    // lea %s11, NumBytes at lo(, %s11)
----------------
simoll wrote:
> kaz7 wrote:
> > simoll wrote:
> > > Consider factoring this into a separate "`LoadImm`" function.
> > This is "addImmediate" to SP and need to specify clobber register also.  I think it is not general instructions as you expected.
> So, you could name it `emitAddImm(Reg, Imm)`. The reason i was asking you to consider this, is that putting this into its own function with a telling name would document what you are doing here and make the functionality reuseable. I imagine there may be other places where we need to emit code to increment a register by a constant.
As I said, it requires clobber register like S13 in this case.  I simply don't understand what you really want.  I already named like `emitSPAdjustment`.  Should I change this name to `emitAddSPImm` or something?  Or should I make a new function to handle only `isInt<7>` and `isInt<32>` cases?  Or should I make a new function to handle all cases?  If this function generates really generic instructions, I agree with you.  However, this isn't IMHO.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D92174



More information about the llvm-commits mailing list