[PATCH] D22045: [X86] Support of no_caller_saved_registers attribute (Clang part)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 7 06:40:14 PDT 2016


aaron.ballman added inline comments.

================
Comment at: include/clang/Basic/Attr.td:1674
@@ +1673,3 @@
+                                   TargetSpecificAttr<TargetAnyX86> {
+  let Spellings = [GNU<"no_caller_saved_registers">];
+  let Subjects = SubjectList<[FunctionLike], WarnDiag, "ExpectedFunction">;
----------------
aaboud wrote:
> aaron.ballman wrote:
> > Yes, though interrupt should be handled in a separate patch since it's a logically separate change.
> How about using GCC Spelling instead of GNU and C++?
> 
> 1. These attributes are compatible with GCC.
> 2. This is what is said about GCC class:
> 
> ```
> // The GCC spelling implies GNU<name, "GNU"> and CXX11<"gnu", name> and also
> // sets KnownToGCC to 1. This spelling should be used for any GCC-compatible
> // attributes.
> class GCC<string name> : Spelling<name, "GCC"> {
>   let KnownToGCC = 1;
> }
> ```
The GCC spelling should only be used if the attribute is also supported by GCC, which this one is not. So the spelling should be `GNU<"no_caller_saved_registers">`, and `CXX11<"clang", "no_caller_saved_registers">`.


https://reviews.llvm.org/D22045





More information about the cfe-commits mailing list