Skip to content

Commit 9769f3a

Browse files
committed
[AArch64] Enable out-of-line atomics by default
1 parent 8323ff0 commit 9769f3a

File tree

11 files changed

+4
-63
lines changed

11 files changed

+4
-63
lines changed

clang/include/clang/Driver/ToolChain.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -564,12 +564,6 @@ class ToolChain {
564564
virtual UnwindTableLevel
565565
getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const;
566566

567-
/// Test whether this toolchain supports outline atomics by default.
568-
virtual bool
569-
IsAArch64OutlineAtomicsDefault(const llvm::opt::ArgList &Args) const {
570-
return false;
571-
}
572-
573567
/// Test whether this toolchain defaults to PIC.
574568
virtual bool isPICDefault() const = 0;
575569

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3057,7 +3057,7 @@ void tools::addOutlineAtomicsArgs(const Driver &D, const ToolChain &TC,
30573057
CmdArgs.push_back("-outline-atomics");
30583058
}
30593059
}
3060-
} else if (Triple.isAArch64() && TC.IsAArch64OutlineAtomicsDefault(Args)) {
3060+
} else if (Triple.isAArch64()) {
30613061
CmdArgs.push_back("-target-feature");
30623062
CmdArgs.push_back("+outline-atomics");
30633063
}

clang/lib/Driver/ToolChains/FreeBSD.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ class LLVM_LIBRARY_VISIBILITY FreeBSD : public Generic_ELF {
7878
void AddHIPIncludeArgs(const llvm::opt::ArgList &DriverArgs,
7979
llvm::opt::ArgStringList &CC1Args) const override;
8080

81-
bool IsAArch64OutlineAtomicsDefault(
82-
const llvm::opt::ArgList &Args) const override {
83-
return true;
84-
}
85-
8681
UnwindTableLevel
8782
getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const override;
8883
bool isPIEDefault(const llvm::opt::ArgList &Args) const override;

clang/lib/Driver/ToolChains/Fuchsia.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,6 @@ class LLVM_LIBRARY_VISIBILITY Fuchsia : public ToolChain {
9090
GetRuntimeLibType(const llvm::opt::ArgList &Args) const override;
9191
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
9292

93-
bool IsAArch64OutlineAtomicsDefault(
94-
const llvm::opt::ArgList &Args) const override {
95-
return true;
96-
}
97-
9893
void
9994
addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
10095
llvm::opt::ArgStringList &CC1Args,

clang/lib/Driver/ToolChains/Haiku.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ class LLVM_LIBRARY_VISIBILITY Haiku : public Generic_ELF {
5656
const llvm::opt::ArgList &DriverArgs,
5757
llvm::opt::ArgStringList &CC1Args) const override;
5858

59-
bool IsAArch64OutlineAtomicsDefault(
60-
const llvm::opt::ArgList &Args) const override {
61-
return true;
62-
}
63-
6459
SanitizerMask getSupportedSanitizers() const override;
6560
unsigned GetDefaultDwarfVersion() const override { return 4; }
6661

clang/lib/Driver/ToolChains/Hurd.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@ class LLVM_LIBRARY_VISIBILITY Hurd : public Generic_ELF {
3030
addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
3131
llvm::opt::ArgStringList &CC1Args) const override;
3232

33-
bool IsAArch64OutlineAtomicsDefault(
34-
const llvm::opt::ArgList &Args) const override {
35-
return true;
36-
}
37-
3833
std::string getDynamicLinker(const llvm::opt::ArgList &Args) const override;
3934

4035
void addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const override;

clang/lib/Driver/ToolChains/Linux.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -772,19 +772,6 @@ bool Linux::isPIEDefault(const llvm::opt::ArgList &Args) const {
772772
getTriple().isMusl() || getSanitizerArgs(Args).requiresPIE();
773773
}
774774

775-
bool Linux::IsAArch64OutlineAtomicsDefault(const ArgList &Args) const {
776-
// Outline atomics for AArch64 are supported by compiler-rt
777-
// and libgcc since 9.3.1
778-
assert(getTriple().isAArch64() && "expected AArch64 target!");
779-
ToolChain::RuntimeLibType RtLib = GetRuntimeLibType(Args);
780-
if (RtLib == ToolChain::RLT_CompilerRT)
781-
return true;
782-
assert(RtLib == ToolChain::RLT_Libgcc && "unexpected runtime library type!");
783-
if (GCCInstallation.getVersion().isOlderThan(9, 3, 1))
784-
return false;
785-
return true;
786-
}
787-
788775
bool Linux::IsMathErrnoDefault() const {
789776
if (getTriple().isAndroid() || getTriple().isMusl())
790777
return false;

clang/lib/Driver/ToolChains/Linux.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ class LLVM_LIBRARY_VISIBILITY Linux : public Generic_ELF {
4646
RuntimeLibType GetDefaultRuntimeLibType() const override;
4747
unsigned GetDefaultDwarfVersion() const override;
4848
CXXStdlibType GetDefaultCXXStdlibType() const override;
49-
bool
50-
IsAArch64OutlineAtomicsDefault(const llvm::opt::ArgList &Args) const override;
5149
bool isPIEDefault(const llvm::opt::ArgList &Args) const override;
5250
bool IsMathErrnoDefault() const override;
5351
SanitizerMask getSupportedSanitizers() const override;

clang/lib/Driver/ToolChains/Managarm.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ class LLVM_LIBRARY_VISIBILITY Managarm : public Generic_ELF {
3535
addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
3636
llvm::opt::ArgStringList &CC1Args) const override;
3737

38-
bool IsAArch64OutlineAtomicsDefault(
39-
const llvm::opt::ArgList &Args) const override {
40-
return true;
41-
}
42-
4338
SanitizerMask getSupportedSanitizers() const override;
4439
std::string computeSysRoot() const override;
4540

clang/lib/Driver/ToolChains/OpenBSD.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,6 @@ class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF {
7979
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
8080
llvm::opt::ArgStringList &CmdArgs) const override;
8181

82-
bool IsAArch64OutlineAtomicsDefault(
83-
const llvm::opt::ArgList &Args) const override {
84-
return true;
85-
}
86-
8782
std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component,
8883
FileType Type = ToolChain::FT_Static,
8984
bool IsFortran = false) const override;

0 commit comments

Comments
 (0)