[Openmp-commits] [PATCH] D11301: Remove the __kmp_invoke_microtask() that relies on libffi

hfinkel at anl.gov hfinkel at anl.gov
Mon Jul 20 10:02:59 PDT 2015


hfinkel added a comment.

In http://reviews.llvm.org/D11301#208269, @jlpeyton wrote:

> > Why is libffi a depdendency at all?
>
>
> Because the first ARM port had it in there.
>
> > What if it's not installed?
>
>
> Then the linking step of the build will fail.
>
> > What's used on OSX and Windows?
>
>
> __kmp_invoke_microtask in z_Linux_asm.s and z_Windows_NT-586_asm.asm respectively.


That's correct, the generic mechanism used by PowerPC, etc. is faster.

The underlying issue is that X86 needs this generic va_args-like dispatching to handle legacy icc-compiled code. Clang, however, only generates code requiring a fixed (small) number of arguments. As I understand it from Jim, icc does not even need this capability any more (acting more like Clang does now), and in any case, we don't need the extra complexity for non-X86 targets.

> > If it's performance impacting should a more portable altenternative be explored?

> 

> 

> I believe if anything, it will only improve performance since calls to libffi are avoided.

> 

> > I haven't looked at the code, but is this a way to allow for scalable OMP 3 tasks?

> 

> 

> It is the low-level mechanism to invoke implicit (from omp parallel) and explicit (from omp task) tasks.

>  It does not relate to scalable tasking algorithms.





Repository:
  rL LLVM

http://reviews.llvm.org/D11301







More information about the Openmp-commits mailing list