This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Properly propagating Calling Convention information when lowering vector arguments
ClosedPublic

Authored by pratlucas on Aug 27 2020, 7:40 AM.

Details

Summary

When joining the legal parts of vector arguments into its original value
during the lower of Formal Arguments in SelectionDAGBuilder, the Calling
Convention information was not being propagated for the handling of each
individual parts. The same did not happen when lowering calls, causing a
mismatch.

This patch fixes the issue by properly propagating the Calling
Convention details.

This fixes Bugzilla #47001.

Diff Detail

Event Timeline

pratlucas created this revision.Aug 27 2020, 7:40 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 27 2020, 7:40 AM
pratlucas requested review of this revision.Aug 27 2020, 7:40 AM
pratlucas updated this revision to Diff 288330.

Removing unrelated whitespace change.

arsenm added a subscriber: arsenm.Aug 27 2020, 7:42 AM
arsenm added inline comments.
llvm/test/CodeGen/ARM/fp16-v3.ll
31

Why were these deleted?

pratlucas marked an inline comment as done.Aug 27 2020, 7:48 AM
pratlucas added inline comments.
llvm/test/CodeGen/ARM/fp16-v3.ll
31

The issue fixed by this patch was preventing the changes from D75169 to be applied for vector arguments such as this one.
With those changes applied, the vector elements are properly passed without the floating point conversion to f32.

pratlucas marked an inline comment as done.Aug 27 2020, 7:48 AM
arsenm accepted this revision.Aug 27 2020, 8:19 AM
This revision is now accepted and ready to land.Aug 27 2020, 8:19 AM
This revision was landed with ongoing or failed builds.Aug 27 2020, 9:01 AM
This revision was automatically updated to reflect the committed changes.
hans added a comment.Aug 28 2020, 2:06 AM

Pushed to 11.x as ba3413982cbd7a5b5aeaf2ea34e0a91d5561202d. Please let me know if there are any follow-ups.