HomePhabricator

[PowerPC] Remove redundant CRSET/CRUNSET in custom lowering of known CR bit…

Authored by Yi-Hong.Lyu on Sep 11 2019, 11:49 PM.

Description

[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