This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU/GlobalISel: Fix argument lowering for vectors of pointers
ClosedPublic

Authored by arsenm on Jan 3 2020, 10:37 AM.

Details

Summary

When these arguments are broken down by the EVT based callbacks, the
pointer information is lost. Hack around this by coercing the register
types to be the expected pointer element type when building the
remerge operations.

Diff Detail

Event Timeline

arsenm created this revision.Jan 3 2020, 10:37 AM

When these arguments are broken down by the EVT based callbacks, the pointer information is lost.

Is it possible to make sure that this doesn't happen generically? I assume this will be a problem for other backends at some point.

arsenm added a comment.Jan 6 2020, 2:33 PM

When these arguments are broken down by the EVT based callbacks, the pointer information is lost.

Is it possible to make sure that this doesn't happen generically? I assume this will be a problem for other backends at some point.

I don't like how this argument pack/unpack logic is in the target at all. This isn't really doing anything special. Currently all targets seem to be duplicating similar looking pack/unpack functions

paquette accepted this revision.Jan 9 2020, 12:08 PM

Currently all targets seem to be duplicating similar looking pack/unpack functions

That's kind of unfortunate.

LGTM anyway.

This revision is now accepted and ready to land.Jan 9 2020, 12:08 PM