[clang] fe02896 - [Driver] -fno-optimize-sibling-calls: use the same spelling for its -cc1 counterpart
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 11 22:21:29 PDT 2022
Author: Fangrui Song
Date: 2022-04-11T22:21:24-07:00
New Revision: fe02896a79174af089600d9ea13bb0f7a446cb8f
URL: https://github.com/llvm/llvm-project/commit/fe02896a79174af089600d9ea13bb0f7a446cb8f
DIFF: https://github.com/llvm/llvm-project/commit/fe02896a79174af089600d9ea13bb0f7a446cb8f.diff
LOG: [Driver] -fno-optimize-sibling-calls: use the same spelling for its -cc1 counterpart
And remove a -no-opaque-pointers
Added:
clang/test/Driver/foptimize-sibling-calls.c
Modified:
clang/include/clang/Driver/Options.td
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/CodeGen/attr-disable-tail-calls.c
clang/test/CodeGen/disable-tail-calls.c
Removed:
clang/test/Driver/no-sibling-calls.c
################################################################################
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 81d47b2517d02..27957b10925f7 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -2522,7 +2522,9 @@ def static_openmp: Flag<["-"], "static-openmp">,
HelpText<"Use the static host OpenMP runtime while linking.">;
def fopenmp_new_driver : Flag<["-"], "fopenmp-new-driver">, Flags<[CC1Option]>, Group<Action_Group>,
HelpText<"Use the new driver for OpenMP offloading.">;
-def fno_optimize_sibling_calls : Flag<["-"], "fno-optimize-sibling-calls">, Group<f_Group>;
+def fno_optimize_sibling_calls : Flag<["-"], "fno-optimize-sibling-calls">, Group<f_Group>, Flags<[CC1Option]>,
+ HelpText<"Disable tail call optimization, keeping the call stack accurate">,
+ MarshallingInfoFlag<CodeGenOpts<"DisableTailCalls">>;
def foptimize_sibling_calls : Flag<["-"], "foptimize-sibling-calls">, Group<f_Group>;
defm escaping_block_tail_calls : BoolFOption<"escaping-block-tail-calls",
CodeGenOpts<"NoEscapingBlockTailCalls">, DefaultFalse,
@@ -5201,9 +5203,6 @@ def mframe_pointer_EQ : Joined<["-"], "mframe-pointer=">,
HelpText<"Specify which frame pointers to retain.">, Values<"all,non-leaf,none">,
NormalizedValuesScope<"CodeGenOptions::FramePointerKind">, NormalizedValues<["All", "NonLeaf", "None"]>,
MarshallingInfoEnum<CodeGenOpts<"FramePointer">, "None">;
-def mdisable_tail_calls : Flag<["-"], "mdisable-tail-calls">,
- HelpText<"Disable tail call optimization, keeping the call stack accurate">,
- MarshallingInfoFlag<CodeGenOpts<"DisableTailCalls">>;
def menable_no_infinities : Flag<["-"], "menable-no-infs">,
HelpText<"Allow optimization to assume there are no infinities.">,
MarshallingInfoFlag<LangOpts<"NoHonorInfs">>, ImpliedByAnyOf<[ffinite_math_only.KeyPath]>;
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 4ddd622015efd..9c0372b1dd3db 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -4767,9 +4767,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
D.Diag(diag::err_drv_unsupported_embed_bitcode) << A->getSpelling();
// Render the CodeGen options that need to be passed.
- if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
- options::OPT_fno_optimize_sibling_calls, true))
- CmdArgs.push_back("-mdisable-tail-calls");
+ Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls,
+ options::OPT_fno_optimize_sibling_calls);
RenderFloatingPointOptions(TC, D, isOptimizationLevelFast(Args), Args,
CmdArgs, JA);
@@ -5150,9 +5149,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
options::OPT_fno_strict_vtable_pointers);
Args.addOptInFlag(CmdArgs, options::OPT_fforce_emit_vtables,
options::OPT_fno_force_emit_vtables);
- if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
- options::OPT_fno_optimize_sibling_calls, true))
- CmdArgs.push_back("-mdisable-tail-calls");
+ Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls,
+ options::OPT_fno_optimize_sibling_calls);
Args.addOptOutFlag(CmdArgs, options::OPT_fescaping_block_tail_calls,
options::OPT_fno_escaping_block_tail_calls);
diff --git a/clang/test/CodeGen/attr-disable-tail-calls.c b/clang/test/CodeGen/attr-disable-tail-calls.c
index 83b61dc627042..1fea56b2b0ecc 100644
--- a/clang/test/CodeGen/attr-disable-tail-calls.c
+++ b/clang/test/CodeGen/attr-disable-tail-calls.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 %s -emit-llvm -mdisable-tail-calls -o - | FileCheck %s -check-prefix=DISABLE
+// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 %s -emit-llvm -fno-optimize-sibling-calls -o - | FileCheck %s -check-prefix=DISABLE
// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 %s -emit-llvm -o - | FileCheck %s -check-prefix=ENABLE
// DISABLE: define{{.*}} i32 @f1() [[ATTRTRUE:#[0-9]+]] {
diff --git a/clang/test/CodeGen/disable-tail-calls.c b/clang/test/CodeGen/disable-tail-calls.c
index 34dd0ed1bebef..e53c065072a46 100644
--- a/clang/test/CodeGen/disable-tail-calls.c
+++ b/clang/test/CodeGen/disable-tail-calls.c
@@ -1,16 +1,16 @@
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-macosx10.9.0 -emit-llvm -O1 -mdisable-tail-calls -o - < %s | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9.0 -emit-llvm -O2 -fno-optimize-sibling-calls -o - < %s | FileCheck %s
typedef struct List {
struct List *next;
int data;
} List;
-// CHECK-LABEL: define{{.*}} %struct.List* @find
+// CHECK-LABEL: define{{.*}} ptr @find(
List *find(List *head, int data) {
if (!head)
return 0;
if (head->data == data)
return head;
- // CHECK: call %struct.List* @find
+ // CHECK: call ptr @find(
return find(head->next, data);
}
diff --git a/clang/test/Driver/no-sibling-calls.c b/clang/test/Driver/foptimize-sibling-calls.c
similarity index 69%
rename from clang/test/Driver/no-sibling-calls.c
rename to clang/test/Driver/foptimize-sibling-calls.c
index c24899013f18d..3cb58ec8bca99 100644
--- a/clang/test/Driver/no-sibling-calls.c
+++ b/clang/test/Driver/foptimize-sibling-calls.c
@@ -1,8 +1,7 @@
// RUN: %clang -### %s -fno-optimize-sibling-calls 2> %t
// RUN: FileCheck --check-prefix=CHECK-NOSC < %t %s
-// CHECK-NOSC: "-mdisable-tail-calls"
+// CHECK-NOSC: "-fno-optimize-sibling-calls"
// RUN: %clang -### -foptimize-sibling-calls %s 2> %t
// RUN: FileCheck --check-prefix=CHECK-OSC < %t %s
-// CHECK-OSC-NOT: "-mdisable-tail-calls"
-
+// CHECK-OSC-NOT: "-fno-optimize-sibling-calls"
More information about the cfe-commits
mailing list