This revision was automatically updated to reflect the committed changes.
Closed by commit rC319420: [ARM] disable FPU features when using soft floating
point. (authored by kwalker).
Changed prior to commit:
https://reviews.llvm.org/D40256?vs=124579&id=124905#toc
Repository:
rC Clang
https:
efriedma accepted this revision.
efriedma added a comment.
This revision is now accepted and ready to land.
LGTM
https://reviews.llvm.org/D40256
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/c
keith.walker.arm updated this revision to Diff 124579.
keith.walker.arm added a comment.
> What are these disabled "R-UN" lines?
Oops! They shouldn't have been disabled in the patch.
> Do we really need to check every combination like this? I don't think the
> underlying logic actually varies
efriedma added inline comments.
Comment at: test/Driver/arm-mfpu.c:301
+// RUN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %s
+// R-UN: %clang -target armv4-linux-gnueabi -mfloat-abi=soft -mfpu=none %s
-### -c 2>&1 \
+// R-UN: | FileCheck --check-prefix=CHECK-SOFT-ABI-FP %
keith.walker.arm updated this revision to Diff 123936.
keith.walker.arm added a comment.
I have updated the patch with the suggested change to use a list of features to
disable.
I checked that LLVM does indeed implicitly disable features if they are
dependent on a feature that is explicitly dis
keith.walker.arm added inline comments.
Comment at: lib/Driver/ToolChains/Arch/ARM.cpp:406
+const bool HasVFPv4 = (std::find(ItBegin, ItEnd, "+vfpv4") != ItEnd);
+const bool HasFParmv8 = (std::find(ItBegin, ItEnd, "+fp-armv8") != ItEnd);
+const bool HasFullFP16 = (
compnerd added inline comments.
Comment at: lib/Driver/ToolChains/Arch/ARM.cpp:419
+Features.push_back("-fullfp16");
+
+const bool HasNeon = (std::find(ItBegin, ItEnd, "+neon") != ItEnd);
It would be nice to not have these explicitly listed. But at
efriedma added a comment.
Oh, I see, for some silly reason there are actually *three* -mfloat-abi
options: hard, soft, and softfp. hard means float instructions and a
hard-float calling convention, soft means no floating-point and a soft-float
convention, and softfp means float instructions an
asb added subscribers: llvm-commits, asb.
asb added a comment.
It would have been much cleaner if it worked as @efriedma suggests and
-mfloat-abi was only concerned with the ABI (as its name would suggest), but
sadly the -mfloat-abi=soft option seems to be defined in GCC to control more
than ju
rengolin added a comment.
Wasn't that the mess about -mfpu=softfp?
https://reviews.llvm.org/D40256
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
efriedma added a comment.
-mfpu controls what floating-point/vector instructions the compiler generates.
-mfloat-abi controls whether floating-point arguments to functions are passed
in floating-point registers. These are completely independent, and we need to
support using both of them toget
keith.walker.arm created this revision.
Herald added subscribers: kristof.beyls, javed.absar, aemerson.
To be compatible with GCC if soft floating point is in effect any FPU
specified is effectively ignored, eg,
-mfloat-abi=soft -fpu=neon
If any floating point features which require FPU hardwa
12 matches
Mail list logo