[PATCH] D92189: [OpenMPIRBuilder] forward arguments as pointers to outlined function

Lubomir Litchev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 1 09:10:28 PST 2020


llitchev added a comment.

In D92189#2425639 <https://reviews.llvm.org/D92189#2425639>, @jdoerfert wrote:

> While only partially related, can you leave a FIXME saying that more than 15 arguments need to be packed in a structure?

Yes, the number of varargs that is guarantee to work is 15, if more are needed, there is a need to wrap the parameters in a struct.
As we discussed (bring it here too) the issue here is how parameters are passed following the calling convention. The varargs assumes that parameters are passed in GPR (INTEGER classifications based on the calling conventions). The varargs approach works fine for the INTEGER classified args. It breaks for the SSE(UP) and vector clarified parameters. If we pass the pointers to the SSE params (floats for example) everything will work - pointers are INTEGER classification.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92189/new/

https://reviews.llvm.org/D92189



More information about the cfe-commits mailing list