efriedma added a comment.

> While the fix proper is trivial: just two lines in 
> lib/Driver/ToolChains/CommonArgs.cpp, finding the right place has been 
> nightmarishly difficult: I'd have expected handling of a Solaris/SPARC CPU 
> default in either of Solaris or SPARC specific files, but not deeply hidden 
> in common code. I've come across issues like this over and over again: 
> configuration information in LLVM is spread all over the place, difficult to 
> find or just to know that it exists.

The clang driver is messy, yes.  Other places are pretty good about this, 
mostly.

For compiler-rt, the XFAILs should probably reflect whatever config the bot is 
running.  (Alternatively, you could use UNSUPPORTED, but that doesn't seem 
warranted here.)



================
Comment at: clang/lib/Basic/Targets/Sparc.cpp:224
+    Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+  }
 }
----------------
This probably should be refactored so the target-independent code generates it 
based on MaxAtomicInlineWidth, instead of duplicating it for each target.  But 
I guess you don't need to do that here.

From the other code, the `getCPUGeneration(CPU) == CG_V9` check should only 
guard the definition of __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8?


================
Comment at: clang/lib/Driver/ToolChains/CommonArgs.cpp:350
       return A->getValue();
+    if (T.getArch() == llvm::Triple::sparc && T.isOSSolaris())
+      return "v9";
----------------
Do we want to make sparc and sparcel behave differently here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86621

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

Reply via email to