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

Carlo Bertolli cbertol at us.ibm.com
Thu Jun 12 07:53:55 PDT 2014


Thanks for the pointer - very useful.

I was not proposing a specialized entry point.

-- Carlo




From:	"Cownie, James H" <james.h.cownie at intel.com>
To:	Carlo Bertolli/Watson/IBM at IBMUS,
            "openmp-dev at dcs-maillist2.engr.illinois.edu"
            <openmp-dev at dcs-maillist2.engr.illinois.edu>
Date:	06/12/2014 04:42 AM
Subject:	RE: [Openmp-dev] Number of variable arguments to microtask in
            __kmp_invoke_microtask



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/933dfba9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20140612/933dfba9/attachment.gif>


More information about the Openmp-dev mailing list