This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/GlobalISel: Rewrite lowerFormalArguments
ClosedPublic

Authored by arsenm on Jul 15 2019, 5:49 AM.

Details

Summary

This should now handle everything except structs passed as multiple
registers.

I think most of the packing logic should be handled by
handleAssignments, but I'm unclear on what the contract is for
multiple registers. This is copying how x86 handles this.

This does change the behavior of the test_sgpr_alignment0 amdgpu_vs
test. I don't think shader arguments should try to follow the
alignment, and registers need to be repacked. I also don't think it
matters, since I think the pointers are packed to the beginning of the
argument list anyway.

Diff Detail