vhscampos marked 2 inline comments as done.
vhscampos added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/Arch/ARM.cpp:292-297
+  auto checkFPDisabledInArchName = [](const StringRef &ArchName) {
+    SmallVector<StringRef, 8> Split;
+    ArchName.split(Split, '+', -1, false);
+    return llvm::any_of(
+        Split, [](const StringRef &Extension) { return Extension == "nofp"; });
+  };
----------------
vhscampos wrote:
> chill wrote:
> > chill wrote:
> > > Wouldn't just looking for the substring do the job?
> > > 
> > > Also need to handle `-mcpu=...+nofp`.
> > > 
> > > We already "parse" the arguments to `-march=` and `-mcpu=` (and `-mfpu=`) 
> > > earlier, it seems to me we
> > > could note the `+nofp` and `+nofp.dp` earlier. (TBH, it isn't immediately 
> > > obvious to me how to untangle this mess).
> > > 
> > Hmm, actually, `+nofp.dp` should not disable the FPU, I think.
> Just looking for the substring might be sufficient indeed.
> 
> Yes, we already do `-march`/`-mcpu` parsing a bit earlier. However, this 
> parsing and the following handling of it is done deeper in the call stack. I 
> wondered about ways to propagate this information back to this point here 
> (e.g. adding one more by-ref argument that is set by the first round of 
> parsing), but I don't feel confident to back it up.
> 
> Are you okay with me just changing it to a substring search?
Actually it may be better to keep the string splitting method. The search 
required here must be whole-word, as to flag up "+nofp", but not "+nofp.dp". It 
can be done with less code using the current list of tokens as opposed to using 
substring search, followed by a "is it whole-word?" check.


================
Comment at: clang/lib/Driver/ToolChains/Arch/ARM.cpp:296
+    return llvm::any_of(
+        Split, [](const StringRef &Extension) { return Extension == "nofp"; });
+  };
----------------
DavidSpickett wrote:
> I would check what this does:
> $ ./bin/clang -target arm-arm-none-eabi /tmp/test.c -c 
> -march=armv8.1-a+nofp+fp -###
> 
> I'm not sure if by this point we've resolved "+nofp+fp" to simply "+fp". 
> (perhaps you'd end up with a bunch of "-<feature>" followed by the same as 
> "+<feature>". Either way I'd expect +fp to win.
Good catch. I will be sure to cover this case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82948



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to