forked from OSchip/llvm-project
[SystemZ] Enable `-mtune=` option in clang.
https://reviews.llvm.org/D128910 enabled handling of attribute "tune-cpu" in LLVM. This PR now enables option `-mtune` in clang, which then generates the new attribute. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D129562
This commit is contained in:
parent
6589729206
commit
880eb839e6
|
@ -3325,7 +3325,7 @@ Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) \| 24
|
|||
.. option:: -mtune=<arg>
|
||||
.. program:: clang
|
||||
|
||||
Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.
|
||||
Only supported on X86, RISC-V and SystemZ. Otherwise accepted for compatibility with GCC.
|
||||
|
||||
.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
|
||||
|
||||
|
|
|
@ -3950,7 +3950,7 @@ def module_file_info : Flag<["-"], "module-file-info">, Flags<[NoXarchOption,CC1
|
|||
HelpText<"Provide information about a particular module file">;
|
||||
def mthumb : Flag<["-"], "mthumb">, Group<m_Group>;
|
||||
def mtune_EQ : Joined<["-"], "mtune=">, Group<m_Group>,
|
||||
HelpText<"Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.">;
|
||||
HelpText<"Only supported on X86, RISC-V and SystemZ. Otherwise accepted for compatibility with GCC.">;
|
||||
def multi__module : Flag<["-"], "multi_module">;
|
||||
def multiply__defined__unused : Separate<["-"], "multiply_defined_unused">;
|
||||
def multiply__defined : Separate<["-"], "multiply_defined">;
|
||||
|
|
|
@ -123,6 +123,14 @@ public:
|
|||
|
||||
void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
|
||||
|
||||
bool isValidTuneCPUName(StringRef Name) const override {
|
||||
return isValidCPUName(Name);
|
||||
}
|
||||
|
||||
void fillValidTuneCPUList(SmallVectorImpl<StringRef> &Values) const override {
|
||||
fillValidCPUList(Values);
|
||||
}
|
||||
|
||||
bool setCPU(const std::string &Name) override {
|
||||
CPU = Name;
|
||||
ISARevision = getISARevision(CPU);
|
||||
|
|
|
@ -2228,8 +2228,23 @@ void Clang::AddSparcTargetArgs(const ArgList &Args,
|
|||
|
||||
void Clang::AddSystemZTargetArgs(const ArgList &Args,
|
||||
ArgStringList &CmdArgs) const {
|
||||
bool HasBackchain = Args.hasFlag(options::OPT_mbackchain,
|
||||
options::OPT_mno_backchain, false);
|
||||
if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
|
||||
StringRef Name = A->getValue();
|
||||
|
||||
std::string TuneCPU;
|
||||
if (Name == "native")
|
||||
TuneCPU = std::string(llvm::sys::getHostCPUName());
|
||||
else
|
||||
TuneCPU = std::string(Name);
|
||||
|
||||
if (!TuneCPU.empty()) {
|
||||
CmdArgs.push_back("-tune-cpu");
|
||||
CmdArgs.push_back(Args.MakeArgString(TuneCPU));
|
||||
}
|
||||
}
|
||||
|
||||
bool HasBackchain =
|
||||
Args.hasFlag(options::OPT_mbackchain, options::OPT_mno_backchain, false);
|
||||
bool HasPackedStack = Args.hasFlag(options::OPT_mpacked_stack,
|
||||
options::OPT_mno_packed_stack, false);
|
||||
systemz::FloatABI FloatABI =
|
||||
|
|
Loading…
Reference in New Issue