[PATCH] D35027: [PowerPC] Reduce register pressure by not materializing a constant just for use as an index register for X-Form loads/stores

Stefan Pintilie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 5 13:10:48 PDT 2017


stefanp added inline comments.


================
Comment at: lib/Target/PowerPC/PPCISelLowering.cpp:2247
+      (!(isIntS16Immediate(N.getOperand(1), imm) &&
+         N.getOperand(1).hasOneUse() && N.getOperand(0).hasOneUse()))) {
     Base = N.getOperand(0);
----------------
Do we need `N.getOperand(1)` to have only one use?
For example: 
```
r10 = (generate r10 somehow)
ADD r4 = r3 + r10  (Is ADD, is not immed S16, r3 has one use, BUT r10 has two uses)
LD r5 = (0, r4)
ADD r7 = r6 + r10 
LD r8 = (0, r7)
```
Ideally I think we can get rid of those ADDs from above. 
There may be a case I'm not thinking of here. 


https://reviews.llvm.org/D35027





More information about the llvm-commits mailing list