[PATCH] D53927: [AArch64] Enable libm vectorized functions via SLEEF

Stefan Teleman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 11 20:49:49 PST 2018


steleman added a comment.

In D53927#1328001 <https://reviews.llvm.org/D53927#1328001>, @shibatch wrote:

> The RFC for reimplementing -fveclib with OpenMP is titled "OpenMP" because the corresponding code for ARM HPC compiler requires OpenMP.
>  However, the proposal in RFC does not require OpenMP, as quoted below.
>
> > The new proposed `#pragma` directive are:
> > 
> > 1. `#pragma veclib declare simd`.
> > 2. `#pragma veclib declare variant`.
> > 
> >   Both directive follows the syntax of the `declare simd` and the `declare variant` directives of OpenMP, with the exception that `declare variant` is used only for the `simd` context.




1. Where, when, how and by whom are these #pragmas inserted? Are they silently inserted by clang? Do they have to be manually inserted in existing code?

2. What is the effect of these #pragmas? The ARM closed-source commercial compiler requires OpenMP. How will these #pragmas be implemented in the open-source clang? Will they import OpenMP interfaces in the open-source clang as well?

3. If importing OpenMP interfaces is //not// triggered by the insertion of these #pragmas, why is the argument to -fveclib called 'openmp'? I would find it baffling to have to type -fveclib=openmp on compile-line, but ending up //not// using OpenMP.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D53927





More information about the llvm-commits mailing list