nickdesaulniers added inline comments.

================
Comment at: clang/include/clang/Basic/AttrDocs.td:6108
+  let Content = [{
+This attribute, when attached to a funcditon, causes the compiler to zero a
+subset of all call-used registers before the function returns. It's used to
----------------
s/funcditon/function/

`:set spell` in vim.


================
Comment at: clang/include/clang/Basic/AttrDocs.td:6116
+
+- ``skip`` doesn't zero any call-used registers.
+- ``used`` only zeros call-used registers used in the function. By ``used``, we
----------------
Might be worth a note that `skip` is helpful for disabling previously occurring 
instances of the command line flag.  Sometimes toolchains have wrapper scripts 
that force on flags, or are built with the implicit default changed, so being 
able to explicitly disable a feature can be helpful.


================
Comment at: clang/lib/CodeGen/CGCall.cpp:2207
+          "zero-call-used-regs",
+          ZeroCallUsedRegsAttr::ConvertZeroCallUsedRegsKindToStr(Kind));
+    }
----------------
The method name has some duplicate information. Perhaps `KindToStr` would be 
more concise?


================
Comment at: clang/lib/Sema/SemaDeclAttr.cpp:7584
+
+  ZeroCallUsedRegsAttr::ZeroCallUsedRegsKind kind;
+  if (!ZeroCallUsedRegsAttr::ConvertStrToZeroCallUsedRegsKind(KindStr, kind)) {
----------------
capital K `Kind`?


================
Comment at: clang/test/CodeGen/zero-call-used-regs.c:219
+
+#define __zero_call_used_regs(...) 
__attribute__((zero_call_used_regs(__VA_ARGS__)))
+
----------------
I don't think any of the expansion sites use a variable number of parameters, 
or more than one?


================
Comment at: clang/test/Sema/zero_call_used_regs.c:6
+void failure() _zero_call_used_regs();                   // expected-error 
{{takes one argument}}
+void failure() _zero_call_used_regs("used", "used-gpr"); // expected-error 
{{takes one argument}}
+void failure() _zero_call_used_regs(0);                  // expected-error 
{{requires a string}}
----------------
How about a test for:

```
void failure 
__attribute__((zero_call_used_reg("used"),zero_call_used_reg("used-gpr")));
```


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110869/new/

https://reviews.llvm.org/D110869

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to