[PATCH] D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions

Renato Golin via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 19 07:16:54 PST 2018

rengolin added reviewers: rsmith, chandlerc, rnk, ABataev.
rengolin added a comment.

Adding clang/omp developers for proper review. Please feel free to add more.

FYI, there are four main ongoing discussions on the LLVM thread (D53927 <https://reviews.llvm.org/D53927>):

1. There is collusion between clang pragmas (`clang vectorise`), OpenMP pragmas (`omp simd`) and newly proposed `veclib` pragmas, which IMHO is too much. We need more OpenMP people looking at them. My proposal is to not add new ones and use OpenMP SIMD without creating library dependencies with OMP, but the interpretation of other pragmas in the same source needs sorting.

2. How we're going to handle the naming scheme, currently proposed to have a local `math.h` and mask the SLEEF includes with macros. My proposal is to have a special header that the compiler only includes upon `-mveclibabi` instead. Library includes end up as `-lsleef` in the linker command line.

3. Who controls the header file. The proposal is Clang control the headers for all vector libraries (all in `math.h` with guards), which means the evolution of Clang and each library is now tied. My proposal is for the library to have their own headers in a standard place (`/usr/include/arch/something') and get Clang to agree on the right place, so that it can include the header from `$default_path/$library_name.h`.

4. The option was called `fveclib` but GCC calls it `mveclibabi`. There doesn't seem to be any behavioural differences, so I think we should follow the same name. We may be forced to create an alias, because this is not new in LLVM (already existed for SVML). This can go on a separate patch. But it's good to be aware of that. Making it an alias, we are fixing the implementation to be at least compatible with GCC, which is a good thing.


Comment at: lib/Index/CommentToXML.cpp:230
   // Inline content.
-  void visitTextComment(const TextComment *C);
-  void visitInlineCommandComment(const InlineCommandComment *C);
-  void visitHTMLStartTagComment(const HTMLStartTagComment *C);
-  void visitHTMLEndTagComment(const HTMLEndTagComment *C);
+  void VisitTextComment(const TextComment *C);
+  void VisitInlineCommandComment(const InlineCommandComment *C);
Spurious change and unrelated to the patch. Please revert this part.

  rC Clang



More information about the cfe-commits mailing list