[Driver] Default to -fxray-function-index
authorFangrui Song <i@maskray.me>
Sun, 11 Jun 2023 22:38:13 +0000 (15:38 -0700)
committerFangrui Song <i@maskray.me>
Sun, 11 Jun 2023 22:38:13 +0000 (15:38 -0700)
As explained by commit 849f1dd15e92fda2b83dbb6144e6b28b2cb946e0,
-fxray-function-index was the original default but was accidentally flipped by
commit d8a8e5d6240a1db809cd95106910358e69bbf299. Restore the previous behavior.

Originally reported by Oleksii Lozovskyi in D145848.

clang/include/clang/Driver/Options.td
clang/lib/Driver/XRayArgs.cpp
clang/test/CodeGen/xray-function-index.c
clang/test/Driver/xray-function-index.cpp

index abb3254..36baebe 100644 (file)
@@ -2216,9 +2216,9 @@ defm xray_ignore_loops : BoolFOption<"xray-ignore-loops",
   NegFlag<SetFalse>>;
 
 defm xray_function_index : BoolFOption<"xray-function-index",
-  CodeGenOpts<"XRayFunctionIndex">, DefaultFalse,
-  PosFlag<SetTrue, [CC1Option]>,
-  NegFlag<SetFalse, [], "Omit function index section at the"
+  CodeGenOpts<"XRayFunctionIndex">, DefaultTrue,
+  PosFlag<SetTrue, []>,
+  NegFlag<SetFalse, [CC1Option], "Omit function index section at the"
           " expense of single-function patching performance">>;
 
 def fxray_link_deps : Flag<["-"], "fxray-link-deps">, Group<f_Group>,
index 89aeb20..f15a91f 100644 (file)
@@ -178,8 +178,8 @@ void XRayArgs::addArgs(const ToolChain &TC, const ArgList &Args,
                     options::OPT_fno_xray_always_emit_typedevents);
   Args.addOptInFlag(CmdArgs, options::OPT_fxray_ignore_loops,
                     options::OPT_fno_xray_ignore_loops);
-  Args.addOptInFlag(CmdArgs, options::OPT_fxray_function_index,
-                    options::OPT_fno_xray_function_index);
+  Args.addOptOutFlag(CmdArgs, options::OPT_fxray_function_index,
+                     options::OPT_fno_xray_function_index);
 
   if (const Arg *A =
           Args.getLastArg(options::OPT_fxray_instruction_threshold_EQ)) {
index bdaef65..0b18c2a 100644 (file)
@@ -1,6 +1,6 @@
 // REQUIRES: x86-registered-target
-// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 -fxray-function-index %s -o - | FileCheck %s
-// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 %s -o - | FileCheck %s --check-prefix=NO
+// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 %s -o - | FileCheck %s
+// RUN: %clang_cc1 -S -triple x86_64 -fxray-instrument -fxray-instruction-threshold=1 -fno-xray-function-index %s -o - | FileCheck %s --check-prefix=NO
 
 // CHECK: .section xray_fn_idx,"awo",@progbits,foo
 // NO-NOT: .section xray_fn_idx
index 550de3d..6cc8d47 100644 (file)
@@ -1,5 +1,5 @@
-// RUN: %clang -### -c --target=x86_64 -fxray-instrument -fxray-function-index %s 2>&1 | FileCheck %s
-// RUN: %clang -### -c --target=x86_64 -fxray-instrument %s 2>&1 | FileCheck %s --check-prefix=DISABLED
+// RUN: %clang -### -c --target=x86_64 -fxray-instrument %s 2>&1 | FileCheck %s
+// RUN: %clang -### -c --target=x86_64 -fxray-instrument -fxray-function-index -fno-xray-function-index %s 2>&1 | FileCheck %s --check-prefix=DISABLED
 
-// CHECK:      "-fxray-function-index"
-// DISABLED-NOT: "-fxray-function-index"
+// CHECK-NOT:  "-fxray-function-index"
+// DISABLED:   "-fno-xray-function-index"