Author: Fangrui Song Date: 2020-06-17T13:00:22-07:00 New Revision: f39000b4505bcfe3d2fcf23487096fb4703082bd
URL: https://github.com/llvm/llvm-project/commit/f39000b4505bcfe3d2fcf23487096fb4703082bd DIFF: https://github.com/llvm/llvm-project/commit/f39000b4505bcfe3d2fcf23487096fb4703082bd.diff LOG: [Driver] Delete CC1 -fxray-function-index and clean up some tests Added: Modified: clang/include/clang/Driver/Options.td clang/include/clang/Driver/XRayArgs.h clang/lib/Driver/XRayArgs.cpp clang/test/Driver/XRay/xray-function-index-flags.cpp clang/test/Driver/XRay/xray-ignore-loops-flags.cpp clang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 9ea0016d057b..86d89360610e 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1280,12 +1280,8 @@ defm xray_always_emit_typedevents : OptInFFlag<"xray-always-emit-typedevents", defm xray_ignore_loops : OptInFFlag<"xray-ignore-loops", "Don't instrument functions with loops unless they also meet the minimum function size">; - -def fxray_function_index : Flag<["-"], "fxray-function-index">, - Group<f_Group>, Flags<[CC1Option]>; -def fno_xray_function_index : Flag<["-"], "fno-xray-function-index">, - Group<f_Group>, Flags<[CC1Option]>, - HelpText<"Omit the xray index section to reduce binary size at the expense of single-function patching performance">; +defm xray_function_index : OptOutFFlag<"xray-function-index", "", + "Omit function index section at the expense of single-function patching performance">; def fxray_link_deps : Flag<["-"], "fxray-link-deps">, Group<f_Group>, Flags<[CC1Option]>, diff --git a/clang/include/clang/Driver/XRayArgs.h b/clang/include/clang/Driver/XRayArgs.h index 22ab5fd2d207..2f055e5c6d7d 100644 --- a/clang/include/clang/Driver/XRayArgs.h +++ b/clang/include/clang/Driver/XRayArgs.h @@ -31,7 +31,7 @@ class XRayArgs { bool XRayAlwaysEmitTypedEvents = false; bool XRayRT = true; bool XRayIgnoreLoops = false; - bool XRayOmitFunctionIndex = false; + bool XRayFunctionIndex; public: /// Parses the XRay arguments from an argument list. diff --git a/clang/lib/Driver/XRayArgs.cpp b/clang/lib/Driver/XRayArgs.cpp index 44a5d0d18291..f00c3906df97 100644 --- a/clang/lib/Driver/XRayArgs.cpp +++ b/clang/lib/Driver/XRayArgs.cpp @@ -105,9 +105,8 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { options::OPT_fno_xray_ignore_loops, false)) XRayIgnoreLoops = true; - if (!Args.hasFlag(options::OPT_fxray_function_index, - options::OPT_fno_xray_function_index, true)) - XRayOmitFunctionIndex = true; + XRayFunctionIndex = Args.hasFlag(options::OPT_fxray_function_index, + options::OPT_fno_xray_function_index, true); auto Bundles = Args.getAllArgValues(options::OPT_fxray_instrumentation_bundle); @@ -208,7 +207,7 @@ void XRayArgs::addArgs(const ToolChain &TC, const ArgList &Args, if (XRayIgnoreLoops) CmdArgs.push_back("-fxray-ignore-loops"); - if (XRayOmitFunctionIndex) + if (!XRayFunctionIndex) CmdArgs.push_back("-fno-xray-function-index"); CmdArgs.push_back(Args.MakeArgString(Twine(XRayInstructionThresholdOption) + diff --git a/clang/test/Driver/XRay/xray-function-index-flags.cpp b/clang/test/Driver/XRay/xray-function-index-flags.cpp index 8bb05cea709e..f0d1a8a8c737 100644 --- a/clang/test/Driver/XRay/xray-function-index-flags.cpp +++ b/clang/test/Driver/XRay/xray-function-index-flags.cpp @@ -2,19 +2,11 @@ // options respect the -fno-xray-function-index flag we provide in the // invocation. The default should be to *include* the function index. // -// RUN: %clang -fxray-instrument -fxray-function-index -target x86_64-linux- -### \ -// RUN: -x c++ -std=c++11 -emit-llvm -c -o - %s 2>&1 \ -// RUN: | FileCheck %s +// RUN: %clang -### -fxray-instrument -target x86_64 -c %s 2>&1 | FileCheck %s +// RUN: %clang -### -fxray-instrument -target x86_64 -fxray-function-index -c %s 2>&1 | FileCheck %s + // CHECK-NOT: -fno-xray-function-index -// -// RUN: %clang -fxray-instrument -target x86_64-linux- -### \ -// RUN: -x c++ -std=c++11 -emit-llvm -c -o - %s 2>&1 \ -// RUN: | FileCheck %s -check-prefix CHECK-DEFAULT -// CHECK-DEFAULT-NOT: -fno-xray-function-index -// -// RUN: %clang -fxray-instrument -fno-xray-function-index -target x86_64-linux- -### \ -// RUN: -x c++ -std=c++11 -emit-llvm -c -o - %s 2>&1 \ -// RUN: | FileCheck %s -check-prefix CHECK-DISABLED + +// RUN: %clang -### -fxray-instrument -target x86_64 -fno-xray-function-index -c %s 2>&1 | FileCheck %s --check-prefix=CHECK-DISABLED + // CHECK-DISABLED: -fno-xray-function-index -// -// REQUIRES: x86_64 || x86_64h diff --git a/clang/test/Driver/XRay/xray-ignore-loops-flags.cpp b/clang/test/Driver/XRay/xray-ignore-loops-flags.cpp index 476786fc639a..2c6ddb8b5297 100644 --- a/clang/test/Driver/XRay/xray-ignore-loops-flags.cpp +++ b/clang/test/Driver/XRay/xray-ignore-loops-flags.cpp @@ -3,8 +3,7 @@ // invocation. // // RUN: %clang -fxray-instrument -fxray-ignore-loops -target x86_64-linux- -### \ -// RUN: -x c++ -std=c++11 -emit-llvm -c -o - %s 2>&1 \ -// RUN: | FileCheck %s +// RUN: -x c++ -emit-llvm -c -o - %s 2>&1 | FileCheck %s // CHECK: -fxray-ignore-loops // // REQUIRES: x86_64 || x86_64h diff --git a/clang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp b/clang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp index b68dca235525..4d311cc7d86c 100644 --- a/clang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp +++ b/clang/test/Driver/XRay/xray-instrumentation-bundles-flags.cpp @@ -3,8 +3,7 @@ // invocation. // // RUN: %clang -fxray-instrument -fxray-instrumentation-bundle=function -### \ -// RUN: -x c++ -std=c++11 -emit-llvm -c -o - %s 2>&1 \ -// RUN: | FileCheck %s +// RUN: -c -o - %s 2>&1 | FileCheck %s // CHECK: -fxray-instrumentation-bundle=function // // REQUIRES: linux || freebsd _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits