This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Scalarize vector argument types to calls
ClosedPublic

Authored by arsenm on Jul 12 2018, 10:35 AM.

Details

Reviewers
rampitec
Summary

When lowering calling conventions, prefer to decompose vectors
into the constitute register types. This avoids artifical constraints
to satisfy a wide super-register.

This improves code quality because now optimizations don't need to
deal with the super-register constraint. For example the immediate
folding code doesn't deal with 4 component reg_sequences, so by
breaking the register down earlier the existing immediate folding
code is able to work.

This also avoids the need for the shader input processing code
to manually split vector types.

Diff Detail