forked from OSchip/llvm-project
Revert changes in r218863, r218864
Summary: The changes introduced in the above two commits are giving a rough time to one of the build bots. Reverting the changes for the moment so that the bot can go green again. Change-Id: Id19f6cb2a8bc292631fac2262268927563d820c2 llvm-svn: 218970
This commit is contained in:
parent
e2e8b0e009
commit
9e3c7cbfa1
|
@ -146,12 +146,6 @@ def warn_drv_clang_unsupported : Warning<
|
|||
"the clang compiler does not support '%0'">;
|
||||
def warn_drv_assuming_mfloat_abi_is : Warning<
|
||||
"unknown platform, assuming -mfloat-abi=%0">;
|
||||
def warn_drv_implied_soft_float_assumed : Warning<
|
||||
"%0 implies soft-float, ignoring conflicting option '%1'">,
|
||||
InGroup<DiagGroup<"implied-soft-float-assumed">>;
|
||||
def warn_drv_implied_soft_float_conflict : Warning<
|
||||
"%0 implies soft-float, which conflicts with option '%1'">,
|
||||
InGroup<DiagGroup<"implied-soft-float-conflict">>, DefaultError;
|
||||
def warn_ignoring_ftabstop_value : Warning<
|
||||
"ignoring invalid -ftabstop value '%0', using default value %1">;
|
||||
def warn_drv_overriding_flag_option : Warning<
|
||||
|
|
|
@ -581,24 +581,14 @@ static void getARMFPUFeatures(const Driver &D, const Arg *A,
|
|||
D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args);
|
||||
}
|
||||
|
||||
// Select the float ABI as determined by -msoft-float, -mhard-float,
|
||||
// -mfpu=... and -mfloat-abi=...
|
||||
// Select the float ABI as determined by -msoft-float, -mhard-float, and
|
||||
// -mfloat-abi=.
|
||||
StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,
|
||||
const llvm::Triple &Triple,
|
||||
bool *ExplicitNoFloat) {
|
||||
|
||||
// FIXME: -msoft-float and -mhard-float identify the nature of floating point
|
||||
// ops, whereas -mfloat-abi=... identifies the floating point argument passing
|
||||
// convention. But here we are mushing them together into FloatABI = soft/
|
||||
// softfp/hard, which is a bit confusing. For example, this means -msoft-float
|
||||
// and -mfloat-abi=soft are equivalent options to clang. But when we pass
|
||||
// arguments to the backend (AddARMTargetArgs), these two options take their
|
||||
// original interpretations.
|
||||
const llvm::Triple &Triple) {
|
||||
StringRef FloatABI;
|
||||
const Arg *A = Args.getLastArg(options::OPT_msoft_float,
|
||||
options::OPT_mhard_float,
|
||||
options::OPT_mfloat_abi_EQ);
|
||||
if (A) {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_msoft_float,
|
||||
options::OPT_mhard_float,
|
||||
options::OPT_mfloat_abi_EQ)) {
|
||||
if (A->getOption().matches(options::OPT_msoft_float))
|
||||
FloatABI = "soft";
|
||||
else if (A->getOption().matches(options::OPT_mhard_float))
|
||||
|
@ -613,31 +603,6 @@ StringRef tools::arm::getARMFloatABI(const Driver &D, const ArgList &Args,
|
|||
}
|
||||
}
|
||||
|
||||
// Some -mfpu=... options are incompatible with some mfloat-abi=... options
|
||||
if (Arg *B = Args.getLastArg(options::OPT_mfpu_EQ)) {
|
||||
StringRef FPU = B->getValue();
|
||||
if (FPU == "none") {
|
||||
// Signal incompatible -mfloat-abi=... options
|
||||
if (FloatABI == "hard")
|
||||
D.Diag(diag::warn_drv_implied_soft_float_conflict)
|
||||
<< B->getAsString(Args) << A->getAsString(Args);
|
||||
else if (FloatABI == "softfp")
|
||||
D.Diag(diag::warn_drv_implied_soft_float_assumed)
|
||||
<< B->getAsString(Args) << A->getAsString(Args);
|
||||
// Assume soft-float
|
||||
FloatABI = "soft";
|
||||
} else if (FloatABI.empty() || FloatABI == "soft") {
|
||||
// Need -mhard-float for floating point ops
|
||||
FloatABI = "softfp";
|
||||
}
|
||||
}
|
||||
|
||||
// This allows us to differentiate between a user specified soft-float and
|
||||
// an inferred soft-float. The latter may be overridden under other conditions
|
||||
// but the former has higher priority.
|
||||
if (FloatABI == "soft" && ExplicitNoFloat)
|
||||
*ExplicitNoFloat = true;
|
||||
|
||||
// If unspecified, choose the default based on the platform.
|
||||
if (FloatABI.empty()) {
|
||||
switch (Triple.getOS()) {
|
||||
|
@ -716,8 +681,7 @@ static void getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple,
|
|||
const ArgList &Args,
|
||||
std::vector<const char *> &Features,
|
||||
bool ForAS) {
|
||||
bool ExplicitNoFloat = false;
|
||||
StringRef FloatABI = tools::arm::getARMFloatABI(D, Args, Triple, &ExplicitNoFloat);
|
||||
StringRef FloatABI = tools::arm::getARMFloatABI(D, Args, Triple);
|
||||
if (!ForAS) {
|
||||
// FIXME: Note, this is a hack, the LLVM backend doesn't actually use these
|
||||
// yet (it uses the -mfloat-abi and -msoft-float options), and it is
|
||||
|
@ -752,14 +716,6 @@ static void getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple,
|
|||
Features.push_back("-neon");
|
||||
// Also need to explicitly disable features which imply NEON.
|
||||
Features.push_back("-crypto");
|
||||
// Disable remaining floating-point features if soft-float is explicitly
|
||||
// requested.
|
||||
if (ExplicitNoFloat) {
|
||||
Features.push_back("-vfp2");
|
||||
Features.push_back("-vfp3");
|
||||
Features.push_back("-vfp4");
|
||||
Features.push_back("-fp-armv8");
|
||||
}
|
||||
}
|
||||
|
||||
// En/disable crc
|
||||
|
|
|
@ -614,8 +614,7 @@ namespace visualstudio {
|
|||
|
||||
namespace arm {
|
||||
StringRef getARMFloatABI(const Driver &D, const llvm::opt::ArgList &Args,
|
||||
const llvm::Triple &Triple,
|
||||
bool *ExplicitNoFloat = NULL);
|
||||
const llvm::Triple &Triple);
|
||||
}
|
||||
namespace XCore {
|
||||
// For XCore, we do not need to instantiate tools for PreProcess, PreCompile and Compile.
|
||||
|
|
|
@ -122,12 +122,12 @@
|
|||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-NO-FP %s
|
||||
// CHECK-NO-FP: "-target-feature" "-neon"
|
||||
// CHECK-NO-FP: "-target-feature" "-crypto"
|
||||
// CHECK-NO-FP: "-target-feature" "-vfp2"
|
||||
// CHECK-NO-FP: "-target-feature" "-vfp3"
|
||||
// CHECK-NO-FP: "-target-feature" "-vfp4"
|
||||
// CHECK-NO-FP: "-target-feature" "-fp-armv8"
|
||||
// CHECK-NO-FP: "-target-feature" "-crypto"
|
||||
// CHECK-NO-FP: "-target-feature" "-neon"
|
||||
|
||||
// RUN: %clang -target arm-linux-gnueabihf %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-HF %s
|
||||
|
@ -136,114 +136,3 @@
|
|||
// RUN: %clang -target armv7-apple-darwin -x assembler %s -### -c 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=ASM %s
|
||||
// ASM-NOT: -target-feature
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv7-linux-gnueabi -mfpu=none -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv6-linux-gnueabi -mfpu=none -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv5-linux-gnueabi -mfpu=none -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv4-linux-gnueabi -mfpu=none -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv7-linux-gnueabi -mfpu=none -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv6-linux-gnueabi -mfpu=none -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv5-linux-gnueabi -mfpu=none -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv4-linux-gnueabi -mfpu=none -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv7-linux-gnueabi -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv6-linux-gnueabi -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv5-linux-gnueabi -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv4-linux-gnueabi -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv8-linux-gnueabi -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv7-linux-gnueabi -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv6-linux-gnueabi -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv5-linux-gnueabi -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv4-linux-gnueabi -msoft-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv7-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv6-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv5-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// RUN: %clang -target armv4-linux-gnueabi -mfpu=none %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI-FP %s
|
||||
// SOFT-ABI-FP-NOT: error:
|
||||
// SOFT-ABI-FP-NOT: warning:
|
||||
// SOFT-ABI-FP-NOT: "-target-feature" "+{{[^ ]*fp[^ ]*}}"
|
||||
// SOFT-ABI-FP: "-target-feature" "-neon"
|
||||
// SOFT-ABI-FP: "-target-feature" "-crypto"
|
||||
// SOFT-ABI-FP: "-target-feature" "-vfp2"
|
||||
// SOFT-ABI-FP: "-target-feature" "-vfp3"
|
||||
// SOFT-ABI-FP: "-target-feature" "-vfp4"
|
||||
// SOFT-ABI-FP: "-target-feature" "-fp-armv8"
|
||||
// SOFT-ABI-FP-NOT: "-target-feature" "+{{[^ ]*fp[^ ]*}}"
|
||||
// SOFT-ABI-FP: "-msoft-float"
|
||||
// SOFT-ABI-FP: "-mfloat-abi" "soft"
|
||||
// SOFT-ABI-FP-NOT: "-target-feature" "+{{[^ ]*fp[^ ]*}}"
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none -mfloat-abi=softfp %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=ABI-IGNORE %s
|
||||
// ABI-IGNORE: warning: -mfpu=none implies soft-float, ignoring conflicting option '-mfloat-abi=softfp'
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none -mfloat-abi=hard %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=ABI-ERROR %s
|
||||
// ABI-ERROR: error: -mfpu=none implies soft-float, which conflicts with option '-mfloat-abi=hard'
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=none -mhard-float %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=FP-ERROR %s
|
||||
// FP-ERROR: error: -mfpu=none implies soft-float, which conflicts with option '-mhard-float'
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=vfp4 -mfloat-abi=soft %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI %s
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=vfp4 -mfloat-abi=softfp %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI %s
|
||||
// RUN: %clang -target armv8-freebsd-gnueabi -mfpu=vfp4 %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SOFT-ABI %s
|
||||
// SOFT-ABI-NOT: error:
|
||||
// SOFT-ABI-NOT: warning:
|
||||
// SOFT-ABI-NOT: "-msoft-float"
|
||||
// SOFT-ABI: "-target-feature" "+vfp4"
|
||||
// SOFT-ABI-NOT: "-msoft-float"
|
||||
// SOFT-ABI: "-mfloat-abi" "soft"
|
||||
// SOFT-ABI-NOT: "-msoft-float"
|
||||
|
||||
// Floating point features should be disabled only when explicitly requested,
|
||||
// otherwise we must respect target inferred defaults.
|
||||
//
|
||||
// RUN: %clang -target armv8-freebsd-gnueabi %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=DEFAULT-FP %s
|
||||
// DEAFULT-FP-NOT: error:
|
||||
// DEFAULT-FP-NOT: warning:
|
||||
// DEFAULT-FP-NOT: "-target-feature" "-{{[^ ]*fp[^ ]*}}"
|
||||
// DEFAULT-FP: "-msoft-float" "-mfloat-abi" "soft"
|
||||
// DEFAULT-FP-NOT: "-target-feature" "-{{[^ ]*fp[^ ]*}}"
|
||||
|
||||
// RUN: %clang -target armv8-linux-gnueabi -mfpu=vfp4 -mfloat-abi=hard %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=VFP-ABI %s
|
||||
// VFP-ABI-NOT: error:
|
||||
// VFP-ABI-NOT: warning:
|
||||
// VFP-ABI-NOT: "-msoft-float"
|
||||
// VFP-ABI: "-target-feature" "+vfp4"
|
||||
// VFP-ABI-NOT: "-msoft-float"
|
||||
// VFP-ABI: "-mfloat-abi" "hard"
|
||||
// VFP-ABI-NOT: "-msoft-float"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// RUN: %clang -target arm-linux -mfpu=neon -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-ARM-MFPU %s
|
||||
// CHECK-ARM-MFPU: as{{(.exe)?}}" "-mfloat-abi=softfp" "-mfpu=neon"
|
||||
// CHECK-ARM-MFPU: as{{(.exe)?}}" "-mfloat-abi=soft" "-mfpu=neon"
|
||||
//
|
||||
// RUN: %clang -target arm-linux -march=armv7-a -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
|
@ -23,7 +23,7 @@
|
|||
// RUN: %clang -target arm-linux -mcpu=cortex-a8 -mfpu=neon -march=armv7-a -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-ARM-ALL %s
|
||||
// CHECK-ARM-ALL: as{{(.exe)?}}" "-mfloat-abi=softfp" "-march=armv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
|
||||
// CHECK-ARM-ALL: as{{(.exe)?}}" "-mfloat-abi=soft" "-march=armv7-a" "-mcpu=cortex-a8" "-mfpu=neon"
|
||||
//
|
||||
// RUN: %clang -target armv7-linux -mcpu=cortex-a8 -### \
|
||||
// RUN: -no-integrated-as -c %s 2>&1 \
|
||||
|
|
Loading…
Reference in New Issue