MaskRay added a comment.

The idea seems fine.

> By selecting different groups over time you could cover the entire 
> application incrementally with lower overhead than instrumenting the entire 
> application at once.

How large the overhead is? This is somewhat surprising to me.



================
Comment at: clang/include/clang/Driver/Options.td:1343
+def fxray_function_groups :
+  JoinedOrSeparate<["-"], "fxray-function-groups=">,
+  Group<f_Group>, Flags<[CC1Option]>,
----------------
Joined.

Separate is for a space between the option name and its value.


================
Comment at: clang/include/clang/Driver/Options.td:1345
+  Group<f_Group>, Flags<[CC1Option]>,
+  HelpText<"Only instrument 1 of N functions">;
+
----------------
It is "N groups", not "N functions".


================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:814
+    auto FuncGroups = CGM.getCodeGenOpts().XRayTotalFunctionGroups;
+    if (FuncGroups > 1) {
+      auto FuncName = ArrayRef<uint8_t>(CurFn->getName().bytes_begin(),
----------------
For one group, the branch is skipped, which does not seem correct


================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:815
+    if (FuncGroups > 1) {
+      auto FuncName = ArrayRef<uint8_t>(CurFn->getName().bytes_begin(),
+                                        CurFn->getName().bytes_end());
----------------
`const ArrayRef<uint8_t> FuncName(..., ...)`


================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:820
+          !AlwaysXRayAttr) {
+        Fn->addFnAttr("function-instrument", "xray-never");
+      }
----------------
Omit braces around one-line simple statements.


================
Comment at: clang/test/CodeGen/xray-function-groups.cpp:4
+// RUN:            -fxray-selected-function-group=0 \
+// RUN:            -x c++ -std=c++11 -emit-llvm -o - %s \
+// RUN:            -triple x86_64-unknown-linux-gnu | FileCheck 
--check-prefix=GROUP0 %s
----------------
You can omit `-x c++ -std=c++11 `. They are insignificant. 

Then consider packing more options on one line to reduce the total number of 
lines.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D87953

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

Reply via email to