diff options
author | Eric Christopher <echristo@gmail.com> | 2015-04-28 23:18:33 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2015-04-28 23:18:33 +0000 |
commit | 52fa24172f2cb02684327d52c6ec932a216f456e (patch) | |
tree | 0225d3fb59c77c72cbdea510d3e9eca8d479ba46 /clang/lib/Driver/Tools.cpp | |
parent | 0a4ddc180b2da65343c2a2fd5deada5aeed11a8a (diff) | |
download | llvm-52fa24172f2cb02684327d52c6ec932a216f456e.zip llvm-52fa24172f2cb02684327d52c6ec932a216f456e.tar.gz llvm-52fa24172f2cb02684327d52c6ec932a216f456e.tar.bz2 |
Stop emitting the soft-float and soft-float-abi target features
for ARM while the backend will only ignore them. No functional
change intended.
llvm-svn: 236060
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 1083799..6fb9b54 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -714,29 +714,6 @@ static void getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector<const char *> &Features, bool ForAS) { - 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 - // stripped out by the ARM target. We should probably pass this a new - // -target-option, which is handled by the -cc1/-cc1as invocation. - // - // FIXME2: For consistency, it would be ideal if we set up the target - // machine state the same when using the frontend or the assembler. We don't - // currently do that for the assembler, we pass the options directly to the - // backend and never even instantiate the frontend TargetInfo. If we did, - // and used its handleTargetFeatures hook, then we could ensure the - // assembler and the frontend behave the same. - - // Use software floating point operations? - if (FloatABI == "soft") - Features.push_back("+soft-float"); - - // Use software floating point argument passing? - if (FloatABI != "hard") - Features.push_back("+soft-float-abi"); - } - // Honor -mfpu=. if (const Arg *A = Args.getLastArg(options::OPT_mfpu_EQ)) getARMFPUFeatures(D, A, Args, Features); @@ -745,6 +722,7 @@ static void getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple, // Setting -msoft-float effectively disables NEON because of the GCC // implementation, although the same isn't true of VFP or VFP3. + StringRef FloatABI = tools::arm::getARMFloatABI(D, Args, Triple); if (FloatABI == "soft") { Features.push_back("-neon"); // Also need to explicitly disable features which imply NEON. |