forked from OSchip/llvm-project
Revert "[mips] Teach the driver to accept -m(no-)gpopt."
Revert r308431 and r308432, these caused broke some buildbots. llvm-svn: 308436
This commit is contained in:
parent
303bd07c6e
commit
a923f0e9ce
|
@ -279,10 +279,6 @@ def warn_target_unsupported_nanlegacy : Warning<
|
||||||
def warn_target_unsupported_compact_branches : Warning<
|
def warn_target_unsupported_compact_branches : Warning<
|
||||||
"ignoring '-mcompact-branches=' option because the '%0' architecture does not"
|
"ignoring '-mcompact-branches=' option because the '%0' architecture does not"
|
||||||
" support it">, InGroup<UnsupportedCB>;
|
" support it">, InGroup<UnsupportedCB>;
|
||||||
def warn_drv_unsupported_gpopt : Warning<
|
|
||||||
"ignoring '-mgpopt' option as it cannot be used with %select{|the implicit"
|
|
||||||
" usage of}0-mabicalls">,
|
|
||||||
InGroup<UnsupportedGPOpt>;
|
|
||||||
|
|
||||||
def warn_drv_unable_to_find_directory_expected : Warning<
|
def warn_drv_unable_to_find_directory_expected : Warning<
|
||||||
"unable to find %0 directory, expected to be in '%1'">,
|
"unable to find %0 directory, expected to be in '%1'">,
|
||||||
|
|
|
@ -61,7 +61,6 @@ def DoublePromotion : DiagGroup<"double-promotion">;
|
||||||
def EnumTooLarge : DiagGroup<"enum-too-large">;
|
def EnumTooLarge : DiagGroup<"enum-too-large">;
|
||||||
def UnsupportedNan : DiagGroup<"unsupported-nan">;
|
def UnsupportedNan : DiagGroup<"unsupported-nan">;
|
||||||
def UnsupportedCB : DiagGroup<"unsupported-cb">;
|
def UnsupportedCB : DiagGroup<"unsupported-cb">;
|
||||||
def UnsupportedGPOpt : DiagGroup<"unsupported-gpopt">;
|
|
||||||
def NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">;
|
def NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">;
|
||||||
def NullConversion : DiagGroup<"null-conversion">;
|
def NullConversion : DiagGroup<"null-conversion">;
|
||||||
def ImplicitConversionFloatingPointToBool :
|
def ImplicitConversionFloatingPointToBool :
|
||||||
|
|
|
@ -2035,12 +2035,6 @@ def mfp64 : Flag<["-"], "mfp64">, Group<m_Group>,
|
||||||
HelpText<"Use 64-bit floating point registers (MIPS only)">;
|
HelpText<"Use 64-bit floating point registers (MIPS only)">;
|
||||||
def mfp32 : Flag<["-"], "mfp32">, Group<m_Group>,
|
def mfp32 : Flag<["-"], "mfp32">, Group<m_Group>,
|
||||||
HelpText<"Use 32-bit floating point registers (MIPS only)">;
|
HelpText<"Use 32-bit floating point registers (MIPS only)">;
|
||||||
def mgpopt : Flag<["-"], "mgpopt">, Group<m_Group>,
|
|
||||||
HelpText<"Use GP relative accesses for symbols known to be in a small"
|
|
||||||
" data section (MIPS)">;
|
|
||||||
def mno_gpopt : Flag<["-"], "mno-gpopt">, Group<m_Group>,
|
|
||||||
HelpText<"Do not use GP relative accesses for symbols known to be in a small"
|
|
||||||
" data section (MIPS)">;
|
|
||||||
def mnan_EQ : Joined<["-"], "mnan=">, Group<m_Group>;
|
def mnan_EQ : Joined<["-"], "mnan=">, Group<m_Group>;
|
||||||
def mabicalls : Flag<["-"], "mabicalls">, Group<m_Group>,
|
def mabicalls : Flag<["-"], "mabicalls">, Group<m_Group>,
|
||||||
HelpText<"Enable SVR4-style position-independent code (Mips only)">;
|
HelpText<"Enable SVR4-style position-independent code (Mips only)">;
|
||||||
|
|
|
@ -1462,32 +1462,6 @@ void Clang::AddMIPSTargetArgs(const ArgList &Args,
|
||||||
A->claim();
|
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);
|
|
||||||
bool WantGPOpt = GPOpt && GPOpt->getOption().matches(options::OPT_mgpopt);
|
|
||||||
if (NoABICalls && (!GPOpt || WantGPOpt)) {
|
|
||||||
CmdArgs.push_back("-mllvm");
|
|
||||||
CmdArgs.push_back("-mgpopt=1");
|
|
||||||
} else {
|
|
||||||
CmdArgs.push_back("-mllvm");
|
|
||||||
CmdArgs.push_back("-mgpopt=0");
|
|
||||||
if ((!ABICalls || (!NoABICalls && ABICalls)) && (!GPOpt || WantGPOpt))
|
|
||||||
D.Diag(diag::warn_drv_unsupported_gpopt) << (ABICalls ? 0 : 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GPOpt)
|
|
||||||
GPOpt->claim();
|
|
||||||
|
|
||||||
if (Arg *A = Args.getLastArg(options::OPT_mcompact_branches_EQ)) {
|
if (Arg *A = Args.getLastArg(options::OPT_mcompact_branches_EQ)) {
|
||||||
StringRef Val = StringRef(A->getValue());
|
StringRef Val = StringRef(A->getValue());
|
||||||
if (mips::hasCompactBranches(CPUName)) {
|
if (mips::hasCompactBranches(CPUName)) {
|
||||||
|
|
|
@ -10,31 +10,6 @@
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MNOABICALLS %s
|
// RUN: | FileCheck --check-prefix=CHECK-MNOABICALLS %s
|
||||||
// CHECK-MNOABICALLS: "-target-feature" "+noabicalls"
|
// CHECK-MNOABICALLS: "-target-feature" "+noabicalls"
|
||||||
//
|
//
|
||||||
// -mgpopt
|
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s -mno-gpopt -mgpopt 2>&1 \
|
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MGPOPT-DEF-ABICALLS %s
|
|
||||||
// CHECK-MGPOPT-DEF-ABICALLS-NOT: "-mllvm" "-mgpopt"
|
|
||||||
//
|
|
||||||
// -mabicalls -mgpopt
|
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s -mabicalls -mno-gpopt -mgpopt 2>&1 \
|
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MGPOPT-EXPLICIT-ABICALLS %s
|
|
||||||
// CHECK-MGPOPT-EXPLICIT-ABICALLS-NOT: "-mllvm" "-mgpopt"
|
|
||||||
//
|
|
||||||
// -mno-abicalls -mgpopt
|
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mno-gpopt -mgpopt 2>&1 \
|
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MGPOPT %s
|
|
||||||
// CHECK-MGPOPT: "-mllvm" "-mgpopt=1"
|
|
||||||
//
|
|
||||||
// -mno-abicalls -mno-gpopt
|
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls -mgpopt -mno-gpopt 2>&1 \
|
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MNOGPOPT %s
|
|
||||||
// CHECK-MNOGPOPT: "-mllvm" "-mgpopt=0"
|
|
||||||
//
|
|
||||||
// -mno-abicalls
|
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s -mno-abicalls 2>&1 \
|
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-MGPOPTDEF %s
|
|
||||||
// CHECK-MGPOPTDEF: "-mllvm" "-mgpopt=1"
|
|
||||||
//
|
|
||||||
// -mips16
|
// -mips16
|
||||||
// RUN: %clang -target mips-linux-gnu -### -c %s \
|
// RUN: %clang -target mips-linux-gnu -### -c %s \
|
||||||
// RUN: -mno-mips16 -mips16 2>&1 \
|
// RUN: -mno-mips16 -mips16 2>&1 \
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
// REQUIRES: mips-registered-target
|
|
||||||
// RUN: %clang -### -c -target mips-mti-elf %s -mgpopt 2>&1 | FileCheck -check-prefix=IMPLICIT %s
|
|
||||||
// IMPLICIT: warning: ignoring '-mgpopt' option as it cannot be used with the implicit usage of-mabicalls
|
|
||||||
|
|
||||||
// RUN: %clang -### -c -target mips-mti-elf %s -mgpopt -mabicalls 2>&1 | FileCheck -check-prefix=EXPLICIT %s
|
|
||||||
// EXPLICIT: warning: ignoring '-mgpopt' option as it cannot be used with -mabicalls
|
|
Loading…
Reference in New Issue