[PATCH] D82948: [Driver][ARM] Disable unsupported features when nofp arch extension is used

David Spickett via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 22 01:18:03 PDT 2020


DavidSpickett added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/Arch/ARM.cpp:476
+    // -mfpu=none, -march=armvX+nofp or -mcpu=X+nofp is *very* similar to
+    // -mfloat-abi=soft, only that it should not disable MVE-I.
     Features.insert(Features.end(),
----------------
chill wrote:
> DavidSpickett wrote:
> > Why not disable MVE-I? I assume because it's integer only but then why does -mfloat-abi=soft disable it?
> > 
> > If possible add a regression test for this. In general a test like the bf16 test below, but for all the listed extensions would help. Perhaps it makes more sense to add a driver test that looks for the "-<ext>" bits in the -### output instead of doing each extension on its own.
> > Why not disable MVE-I?
> 
> After MVE, "FPU" registers are a separate entity from the FPU.
> 
> `-mfpu=none`/`+nofp` disable the FPU. MVE-I does not require an FPU.
> `-mfloat-abi=soft` disables both the FPU instructions and the FPU registers.
> MVE-I requires "FPU" registers.
> 
> It's possible to define different semantics, but this is the one we agreed with GCC.
Got it. @vhscampos  can you add that to the comment?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82948/new/

https://reviews.llvm.org/D82948





More information about the llvm-commits mailing list