[PowerPC] Remove redundant CRSET/CRUNSET in custom lowering of known CR bit spills
We lower known CR bit spills (CRSET/CRUNSET) to load and spill the known value but forgot to remove the redundant spills. e.g., This sequence was used to spill a CRUNSET: crclr 4*cr5+lt mfocrf r3,4 rlwinm r3,r3,20,0,0 stw r3,132(r1) Custom lowering of known CR bit spills lower it to: crxor 4*cr5+lt, 4*cr5+lt, 4*cr5+lt li r3,0 stw r3,132(r1) crxor is redundant if there is no use of 4*cr5+lt so we should remove it Differential revision: https://reviews.llvm.org/D67722
Showing
- llvm/lib/Target/PowerPC/PPCInstrInfo.td 5 additions, 0 deletionsllvm/lib/Target/PowerPC/PPCInstrInfo.td
- llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp 16 additions, 1 deletionllvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp 16 additions, 2 deletionsllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
- llvm/test/CodeGen/PowerPC/knowCRBitSpill.ll 5 additions, 2 deletionsllvm/test/CodeGen/PowerPC/knowCRBitSpill.ll
Loading
Please register or sign in to comment