This is an archive of the discontinued LLVM Phabricator instance.

Add attributes for preserve_mostcc/preserve_allcc calling conventions to the C/C++ front-end
Needs ReviewPublic

Authored by swiftix on Mar 8 2016, 5:16 PM.

Details

Summary

Till now, preserve_mostcc/preserve_allcc calling convention attributes were only available at the LLVM IR level. This patch adds attributes for preserve_mostcc/preserve_allcc calling conventions to the C/C++ front-end.

The code was mostly written by Juergen Ributzka. I just added support for the AArch64 target.

Diff Detail

Event Timeline

swiftix updated this revision to Diff 50092.Mar 8 2016, 5:16 PM
swiftix retitled this revision from to Add attributes for preserve_mostcc/preserve_allcc calling conventions to the C/C++ front-end.
swiftix updated this object.
swiftix added a reviewer: ributzka.
aaron.ballman added a subscriber: aaron.ballman.

Missing sema tests that this attribute appears on the proper declaration type, has no arguments, etc.

include/clang/Basic/Attr.td
1396

No new undocumented attributes, please.

1401

Same here.

swiftix updated this revision to Diff 50190.Mar 9 2016, 1:03 PM

Address comments from reviewers:

  • Add a documentation for the new calling conventions
  • Provide Sema tests

I resubmitted the patch as http://reviews.llvm.org/D18025 and included the mailing list as a subscriber, so that the replies are not getting lost.

Sorry for the inconvenience.