On Thu, Jul 20, 2017 at 5:04 PM, Simon Dardis via cfe-commits <cfe-commits@lists.llvm.org> wrote: > Reland "[mips] Teach the driver to accept -m(no-)gpopt." > > This patch teaches the driver to pass -mgpopt by default to the backend when > it > is supported, i.e. we are using -mno-abicalls.
[...] > Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=308619&r1=308618&r2=308619&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Thu Jul 20 07:04:12 2017 > @@ -1462,6 +1462,30 @@ void Clang::AddMIPSTargetArgs(const ArgL > A->claim(); > } > > + Arg *GPOpt = Args.getLastArg(options::OPT_mgpopt, options::OPT_mno_gpopt); > + Arg *ABICalls = > + Args.getLastArg(options::OPT_mabicalls, options::OPT_mno_abicalls); > + > + // -mabicalls is the default for many MIPS environments, even with > -fno-pic. > + // -mgpopt is the default for static, -fno-pic environments but these two > + // options conflict. We want to be certain that -mno-abicalls -mgpopt is > + // the only case where -mllvm -mgpopt is passed. > + // NOTE: We need a warning here or in the backend to warn when -mgpopt is > + // passed explicitly when compiling something with -mabicalls > + // (implictly) in affect. Currently the warning is in the backend. > + bool NoABICalls = > + ABICalls && ABICalls->getOption().matches(options::OPT_mno_abicalls); What about N64 ABI + non-PIC code? In that case we pass the `+noabicalls` feature flag to the backend by default regardless of -mabicalls / -mnoabicalls options. Should we assign `true` to the NoABICalls in that case too to be consistent? -- Simon Atanasyan _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits