This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Set isConvergent on v_cmpx* instructions
ClosedPublic

Authored by arsenm on Jul 1 2016, 3:31 PM.

Details

Summary

No test since these aren't used now, except for one place in a pre-emit pass.

Diff Detail

Event Timeline

arsenm updated this revision to Diff 62552.Jul 1 2016, 3:31 PM
arsenm retitled this revision from to AMDGPU: Set isConvergent on v_cmpx* instructions.
arsenm updated this object.
arsenm added a reviewer: tstellarAMD.
arsenm added a subscriber: llvm-commits.
lib/Target/AMDGPU/SIInstrInfo.td
2307

Why do we need to set hasSideEffects here?

arsenm added inline comments.Jul 5 2016, 10:19 AM
lib/Target/AMDGPU/SIInstrInfo.td
2307

It seems like writing to exec should count as a side effect, although currently the realgar bit instruction manipulations will not have this set

nhaehnle added inline comments.
lib/Target/AMDGPU/SIInstrInfo.td
2307

I see that this is the case in some other places already, but I also doubt that it makes sense. As long as all instructions set (implicit) uses of exec correctly, hasSideEffects shouldn't be needed. Perhaps there's some fragility left with the control-flow annotation instructions, but then IMHO the right approach would be to fix that fragility.

Just my 2c...

arsenm updated this revision to Diff 63614.Jul 11 2016, 5:18 PM

Don't set hasSideEffects

nhaehnle accepted this revision.Jul 12 2016, 1:00 AM
nhaehnle added a reviewer: nhaehnle.

LGTM

This revision is now accepted and ready to land.Jul 12 2016, 1:00 AM
arsenm closed this revision.Jul 12 2016, 11:49 AM

r275200