Details
- Reviewers
• tstellarAMD
Diff Detail
Event Timeline
Should this try to delete the redundant moves itself? MachineCSE runs earlier on SSA, so this isn't getting cleaned up. It helps with the clustering, but I get sequences of re-initing m0 to -1 like:
s_mov_b32 m0, -1
s_mov_b32 m0, -1
s_mov_b32 m0, -1
s_mov_b32 m0, -1
v_mov_b32_e32 v50, 0x4a8
ds_read2_b32 v[82:83], v50 offset1:1
ds_read2_b32 v[50:51], v35 offset1:1
I tried to have the DAGMutation delete the redundant moves, but I started getting assertion failures all over (maybe you can get this to work, not sure). Might have to just run MachineCSE after scheduling.
I would be somewhat surprised if the scheduler allowed deleting instructions, I doubt anywhere else does this
This is broader than the move immediate case. There need to be some tests where this happens for other instruction types