https://github.com/yingopq updated https://github.com/llvm/llvm-project/pull/99615
>From 881ada57bfeb0d0433aa84bb93689f7c06338a19 Mon Sep 17 00:00:00 2001 From: Ying Huang <ying.hu...@oss.cipunited.com> Date: Fri, 19 Jul 2024 04:19:09 -0400 Subject: [PATCH] [clang] Support -Wa, options -mmsa and -mno-msa --- clang/include/clang/Basic/CodeGenOptions.def | 1 + clang/include/clang/Driver/Options.td | 4 +++- clang/lib/Driver/ToolChains/Clang.cpp | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def index f671b780bcbeb..4a834ea78eeb4 100644 --- a/clang/include/clang/Basic/CodeGenOptions.def +++ b/clang/include/clang/Basic/CodeGenOptions.def @@ -178,6 +178,7 @@ CODEGENOPT(MergeAllConstants , 1, 1) ///< Merge identical constants. CODEGENOPT(MergeFunctions , 1, 0) ///< Set when -fmerge-functions is enabled. CODEGENOPT(NoCommon , 1, 0) ///< Set when -fno-common or C++ is enabled. CODEGENOPT(NoExecStack , 1, 0) ///< Set when -Wa,--noexecstack is enabled. +CODEGENOPT(Msa , 1, 0) ///< Set when -Wa,-mmsa is enabled. CODEGENOPT(FatalWarnings , 1, 0) ///< Set when -Wa,--fatal-warnings is ///< enabled. CODEGENOPT(NoWarn , 1, 0) ///< Set when -Wa,--no-warn is enabled. diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 12b20fe04675b..b66ef557ac3e9 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -5337,7 +5337,9 @@ def mmadd4 : Flag<["-"], "mmadd4">, Group<m_mips_Features_Group>, def mno_madd4 : Flag<["-"], "mno-madd4">, Group<m_mips_Features_Group>, HelpText<"Disable the generation of 4-operand madd.s, madd.d and related instructions.">; def mmsa : Flag<["-"], "mmsa">, Group<m_mips_Features_Group>, - HelpText<"Enable MSA ASE (MIPS only)">; + Visibility<[ClangOption, CC1Option, CC1AsOption]>, + HelpText<"Enable MSA ASE (MIPS only)">, + MarshallingInfoFlag<CodeGenOpts<"Msa">>; def mno_msa : Flag<["-"], "mno-msa">, Group<m_mips_Features_Group>, HelpText<"Disable MSA ASE (MIPS only)">; def mmt : Flag<["-"], "mmt">, Group<m_mips_Features_Group>, diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 1fd6fba210042..560f3bd4a67ae 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2507,6 +2507,7 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, bool Crel = false, ExperimentalCrel = false; bool UseRelaxRelocations = C.getDefaultToolChain().useRelaxRelocations(); bool UseNoExecStack = false; + bool Msa = false; const char *MipsTargetFeature = nullptr; StringRef ImplicitIt; for (const Arg *A : @@ -2630,6 +2631,10 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, CmdArgs.push_back("-massembler-no-warn"); } else if (Value == "--noexecstack") { UseNoExecStack = true; + } else if (Value == "-mmsa") { + Msa = true; + } else if (Value == "-mno-msa") { + Msa = false; } else if (Value.starts_with("-compress-debug-sections") || Value.starts_with("--compress-debug-sections") || Value == "-nocompress-debug-sections" || @@ -2716,6 +2721,8 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, << "-Wa,--crel" << D.getTargetTriple(); } } + if (Msa) + CmdArgs.push_back("-mmsa"); if (!UseRelaxRelocations) CmdArgs.push_back("-mrelax-relocations=no"); if (UseNoExecStack) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits