[Openmp-commits] [PATCH] D19879: Solve 'Too many args to microtask' problem

Samuel Antão via Openmp-commits openmp-commits at lists.llvm.org
Fri May 13 07:04:02 PDT 2016


Hi Alexey,

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.

Thanks,
Samuel

2016-05-13 3:07 GMT-04:00 Alexey Bataev via Openmp-commits <
openmp-commits at lists.llvm.org>:

> The codegen scheme in clang has been changed some time ago. Currently
> all captured variables are emitted as immediate arguments of the
> outlined function and not gathered into a single RecordDecl. I'm
> thinking on improving this scheme and I hope this problem will be
> resolved in a week or so. I'm going to implement flexible scheme of
> codegen which will generate single argument if the number  of captured
> variables is too big.
>
> Best regards,
> Alexey Bataev
> =============
> Software Engineer
> Intel Compiler Team
>
> 12.05.2016 21:46, Hal Finkel пишет:
> > Alexey,
> >
> > Could you please comment on this? Is the comment inaccurate?
> >
> >   -Hal
> >
> > ----- Original Message -----
> >> From: "Andrey Churbanov via Openmp-commits" <
> openmp-commits at lists.llvm.org>
> >> To: "pawel osmialowski" <pawel.osmialowski at arm.com>, "jonathan l
> peyton" <jonathan.l.peyton at intel.com>, "andrey
> >> churbanov" <andrey.churbanov at intel.com>
> >> Cc: openmp-commits at lists.llvm.org, "amara emerson" <
> amara.emerson at arm.com>
> >> Sent: Thursday, May 12, 2016 1:43:41 PM
> >> Subject: Re: [Openmp-commits] [PATCH] D19879: Solve 'Too many args to
>       microtask' problem
> >>
> >> AndreyChurbanov accepted this revision.
> >> AndreyChurbanov added a comment.
> >> This revision is now accepted and ready to land.
> >>
> >> LGTM.
> >>
> >> Still unclear though how this problem corresponds with the comment
> >> just above the error print "Too many args to microtask" in
> >> z_Linux_util.c line 2579:
> >>
> >> #if !(KMP_ARCH_X86 || KMP_ARCH_X86_64 || KMP_MIC)
> >> // we really only need the case with 1 argument, because CLANG always
> >> build
> >> // a struct of pointers to shared variables referenced in the
> >> outlined function
> >>
> >> Probably something is wrong with compiler code generation for
> >> AArch64...
> >>
> >>
> >> Repository:
> >>    rL LLVM
> >>
> >> http://reviews.llvm.org/D19879
> >>
> >>
> >>
> >> _______________________________________________
> >> Openmp-commits mailing list
> >> Openmp-commits at lists.llvm.org
> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits
> >>
>
> _______________________________________________
> Openmp-commits mailing list
> Openmp-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20160513/46745d0e/attachment.html>


More information about the Openmp-commits mailing list