This is an archive of the discontinued LLVM Phabricator instance.

ARM: Homogeneous aggregates must be allocated to contiguous registers (clang part)
ClosedPublic

Authored by olista01 on Mar 14 2014, 9:39 AM.

Details

Reviewers
jmolloy
Summary

This is the clang part of D3082.

Diff Detail

Event Timeline

Manman,

Looks at the discussion in D3082.

--renato

olista01 updated this revision to Unknown Object (????).Mar 19 2014, 2:51 AM

The code which I removed from clang enforced two AACPS-VFP rules:

  • CPRCs cannot be split between registers and the stack
  • If anything has been allocated to the stack, large arguments cannot be split between GPRs and the stack

My change to LLVM only covers the first case, so I have reverted the code in clang which fixes the second case. This means that the amount of code removed from clang is now small, but this set of patches still reduces the PCS knowledge embedded in the IR somewhat.

olista01 updated this revision to Unknown Object (????).Mar 19 2014, 3:34 AM

Test changes for the previous change

jmolloy accepted this revision.May 9 2014, 6:53 AM
jmolloy added a reviewer: jmolloy.
jmolloy added a subscriber: jmolloy.

Hi Oliver,

This change LGTM, but maybe Renato could LGTM it too before you commit? I haven't had a *massive* amount of experience with Clang (although the experience I have had is mainly in this area...)

Cheers,

James

This revision is now accepted and ready to land.May 9 2014, 6:53 AM

Hi Oliver,

LGTM too. Thanks!

--renato

olista01 closed this revision.May 9 2014, 8:22 AM

Cheers, committed revision 208417.