<html><body>
<p><font size="2" face="sans-serif">Thanks for the pointer - very useful.</font><br>
<br>
<font size="2" face="sans-serif">I was not proposing a specialized entry point.</font><br>
<br>
<font size="2" face="sans-serif">-- Carlo</font><br>
<br>
<br>
<img width="16" height="16" src="cid:1__=0ABBF666DFC23EEB8f9e8a93df938@us.ibm.com" border="0" alt="Inactive hide details for "Cownie, James H" ---06/12/2014 04:42:49 AM---This is discussed in the manual http://openmp.llvm.org/"><font size="2" color="#424282" face="sans-serif">"Cownie, James H" ---06/12/2014 04:42:49 AM---This is discussed in the manual <a href="http://openmp.llvm.org/Reference.pdf">http://openmp.llvm.org/Reference.pdf</a> (See P3). (Amazing, eh!) - Do o</font><br>
<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">"Cownie, James H" <james.h.cownie@intel.com></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif">Carlo Bertolli/Watson/IBM@IBMUS, "openmp-dev@dcs-maillist2.engr.illinois.edu" <openmp-dev@dcs-maillist2.engr.illinois.edu></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">06/12/2014 04:42 AM</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">RE: [Openmp-dev] Number of variable arguments to microtask in   __kmp_invoke_microtask</font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<font size="2" color="#1F497D" face="Verdana">This is discussed in the manual </font><a href="http://openmp.llvm.org/Reference.pdf"><font size="2" color="#0000FF" face="Verdana"><u>http://openmp.llvm.org/Reference.pdf</u></font></a><font size="2" color="#1F497D" face="Verdana"> (See P3). (Amazing, eh!)</font><br>
<font size="2" face="Arial"> </font><br>
<font size="2" face="Arial">- Do other compilers targeting libiomp make use of the variable argument array to store the microtask arguments (instead of using a struct of pointers)?</font><font size="2" color="#1F497D" face="Verdana"><br>
The intel compiler uses multiple arguments.</font><br>
<font size="2" color="#1F497D" face="Verdana"> </font><br>
<font size="2" color="#1F497D" face="Verdana">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).</font><br>
<font size="2" color="#1F497D" face="Verdana"> </font><br>
<font size="2" color="#1F497D" face="Verdana">-- Jim<br>
<br>
James Cownie <james.h.cownie@intel.com><br>
SSG/DPD/TCAR (Technical Computing, Analyzers and Runtimes)</font><br>
<font size="2" color="#1F497D" face="Verdana">Tel: +44 117 9071438</font><br>
<font size="2" color="#1F497D" face="Verdana"> </font><br>
<font size="2" face="Tahoma"><b>From:</b></font><font size="2" face="Tahoma"> openmp-dev-bounces@cs.uiuc.edu [</font><font size="2" face="Tahoma"><a href="mailto:openmp-dev-bounces@cs.uiuc.edu">mailto:openmp-dev-bounces@cs.uiuc.edu</a></font><font size="2" face="Tahoma">] </font><font size="2" face="Tahoma"><b>On Behalf Of </b></font><font size="2" face="Tahoma">Carlo Bertolli</font><font size="2" face="Tahoma"><b><br>
Sent:</b></font><font size="2" face="Tahoma"> Wednesday, June 11, 2014 11:01 PM</font><font size="2" face="Tahoma"><b><br>
To:</b></font><font size="2" face="Tahoma"> openmp-dev@dcs-maillist2.engr.illinois.edu</font><font size="2" face="Tahoma"><b><br>
Subject:</b></font><font size="2" face="Tahoma"> [Openmp-dev] Number of variable arguments to microtask in __kmp_invoke_microtask</font><br>
<font size="3" face="Times New Roman"> </font>
<p><font size="2" face="Arial">Hi all,</font><font size="3" face="Times New Roman"><br>
</font><font size="2" face="Arial"><br>
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.</font><font size="3" face="Times New Roman"><br>
</font><font size="2" face="Arial"><br>
I tried with multiple cases, but I always get the same number of arguments passed to the invoke_microtask function.</font><font size="3" face="Times New Roman"><br>
</font><font size="2" face="Arial"><br>
- 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.</font><font size="3" face="Times New Roman"><br>
</font><font size="2" face="Arial"><br>
- Do other compilers targeting libiomp make use of the variable argument array to store the microtask arguments (instead of using a struct of pointers)?</font><font size="3" face="Times New Roman"><br>
</font><font size="2" face="Arial"><br>
Thanks for any help</font><font size="3" face="Times New Roman"><br>
<br>
</font><font size="2" face="Arial"><br>
-- Carlo</font>
<p><font size="3" face="Times New Roman">---------------------------------------------------------------------<br>
Intel Corporation (UK) Limited<br>
Registered No. 1134945 (England)<br>
Registered Office: Pipers Way, Swindon SN3 1RJ<br>
VAT No: 860 2173 47</font>
<p><font size="3" face="Times New Roman">This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</font>
<p></body></html>