This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Use multiple returns for intrinsic structs
ClosedPublic

Authored by arsenm on Feb 27 2019, 9:42 AM.

Details

Summary

This is consistent with what SelectionDAG does and is much easier to
work with than the extract sequence with an artificial wide register.

For the AMDGPU control flow intrinsics, this was producing an s128 for
the i64, i1 tuple return. Any legalization that should apply to a real
s128 value would badly obscure the direct values that need to be seen.

Diff Detail

Event Timeline

arsenm created this revision.Feb 27 2019, 9:42 AM

Looks reasonable to me but I'd like @volkan and @aditya_nandakumar to see how it impacts us.

Looks reasonable to me but I'd like @volkan and @aditya_nandakumar to see how it impacts us.

Thanks Quentin for letting me know. I agree this change makes sense. I've also updated our internal code to this change.

arsenm accepted this revision.Mar 14 2019, 7:17 AM

r356147

This revision is now accepted and ready to land.Mar 14 2019, 7:17 AM
arsenm closed this revision.Mar 14 2019, 7:17 AM