<div dir="ltr">Hi Alexey,<div><br></div><div>Why is it necessarily better to use a record of pointers instead of using a vararg? If the goal is to use ffi to call the outlined functions I can understand the runtime may have some noticeable overhead, but if the runtime implementation has the calling convention encoded in small piece of ASM, I guess that would be better as things could be passed by register. I'm also concerned that using a record will preclude passing attributes for each of these pointers as that can only be done if they are function parameters.</div><div><br></div><div>Thanks,</div><div>Samuel</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-05-13 3:07 GMT-04:00 Alexey Bataev via Openmp-commits <span dir="ltr"><<a href="mailto:openmp-commits@lists.llvm.org" target="_blank">openmp-commits@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The codegen scheme in clang has been changed some time ago. Currently<br>
all captured variables are emitted as immediate arguments of the<br>
outlined function and not gathered into a single RecordDecl. I'm<br>
thinking on improving this scheme and I hope this problem will be<br>
resolved in a week or so. I'm going to implement flexible scheme of<br>
codegen which will generate single argument if the number  of captured<br>
variables is too big.<br>
<br>
Best regards,<br>
Alexey Bataev<br>
=============<br>
Software Engineer<br>
Intel Compiler Team<br>
<br>
12.05.2016 21:46, Hal Finkel пишет:<br>
<div class="HOEnZb"><div class="h5">> Alexey,<br>
><br>
> Could you please comment on this? Is the comment inaccurate?<br>
><br>
>   -Hal<br>
><br>
> ----- Original Message -----<br>
>> From: "Andrey Churbanov via Openmp-commits" <<a href="mailto:openmp-commits@lists.llvm.org">openmp-commits@lists.llvm.org</a>><br>
>> To: "pawel osmialowski" <<a href="mailto:pawel.osmialowski@arm.com">pawel.osmialowski@arm.com</a>>, "jonathan l peyton" <<a href="mailto:jonathan.l.peyton@intel.com">jonathan.l.peyton@intel.com</a>>, "andrey<br>
>> churbanov" <<a href="mailto:andrey.churbanov@intel.com">andrey.churbanov@intel.com</a>><br>
>> Cc: <a href="mailto:openmp-commits@lists.llvm.org">openmp-commits@lists.llvm.org</a>, "amara emerson" <<a href="mailto:amara.emerson@arm.com">amara.emerson@arm.com</a>><br>
>> Sent: Thursday, May 12, 2016 1:43:41 PM<br>
>> Subject: Re: [Openmp-commits] [PATCH] D19879: Solve 'Too many args to        microtask' problem<br>
>><br>
>> AndreyChurbanov accepted this revision.<br>
>> AndreyChurbanov added a comment.<br>
>> This revision is now accepted and ready to land.<br>
>><br>
>> LGTM.<br>
>><br>
>> Still unclear though how this problem corresponds with the comment<br>
>> just above the error print "Too many args to microtask" in<br>
>> z_Linux_util.c line 2579:<br>
>><br>
>> #if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC)<br>
>> // we really only need the case with 1 argument, because CLANG always<br>
>> build<br>
>> // a struct of pointers to shared variables referenced in the<br>
>> outlined function<br>
>><br>
>> Probably something is wrong with compiler code generation for<br>
>> AArch64...<br>
>><br>
>><br>
>> Repository:<br>
>>    rL LLVM<br>
>><br>
>> <a href="http://reviews.llvm.org/D19879" rel="noreferrer" target="_blank">http://reviews.llvm.org/D19879</a><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Openmp-commits mailing list<br>
>> <a href="mailto:Openmp-commits@lists.llvm.org">Openmp-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits</a><br>
>><br>
<br>
_______________________________________________<br>
Openmp-commits mailing list<br>
<a href="mailto:Openmp-commits@lists.llvm.org">Openmp-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits</a><br>
</div></div></blockquote></div><br></div>