[Openmp-dev] Number of variable arguments to microtask in __kmp_invoke_microtask

Cownie, James H james.h.cownie at intel.com
Thu Jun 12 01:42:38 PDT 2014


This is discussed in the manual http://openmp.llvm.org/Reference.pdf (See P3). (Amazing, eh!)

- Do other compilers targeting libiomp make use of the variable argument array to store the microtask arguments (instead of using a struct of pointers)?
The intel compiler uses multiple arguments.

I'm not sure how much time we'd save by having a specialised entrypoint for the single argument case. (Specialising based on the argument count in the existing code shouldn't be very expensive, since it would be one test and perfectly predicted branch).

-- Jim

James Cownie <james.h.cownie at intel.com>
SSG/DPD/TCAR (Technical Computing, Analyzers and Runtimes)
Tel: +44 117 9071438

From: openmp-dev-bounces at cs.uiuc.edu [mailto:openmp-dev-bounces at cs.uiuc.edu] On Behalf Of Carlo Bertolli
Sent: Wednesday, June 11, 2014 11:01 PM
To: openmp-dev at dcs-maillist2.engr.illinois.edu
Subject: [Openmp-dev] Number of variable arguments to microtask in __kmp_invoke_microtask


Hi all,

I noticed that clang generates code with only one "variable argument" to __kmpc_fork_call (i.e. ultimately to __kmp_invoke_microtask) - that is the struct.anon pointer that contains the pointers to all arguments used in the microtask.

I tried with multiple cases, but I always get the same number of arguments passed to the invoke_microtask function.

- Does anyone know about examples in which more arguments are used? I tried examples which reference a different number of arrays and shared variables, but nothing changes.

- Do other compilers targeting libiomp make use of the variable argument array to store the microtask arguments (instead of using a struct of pointers)?

Thanks for any help


-- Carlo
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20140612/23b37dc7/attachment.html>


More information about the Openmp-dev mailing list