doru1004 added a comment.

I have modified the patch to only do one thing rather than several things as 
the previous patch. Essentially this patch now only handles the delayed 
emission of the __kmpc_alloc_shared for the VLA which it could not emit in the 
Prolog of the function. This is now very precise in terms of which VLAs it will 
transform into __kmpc_alloc_shared i.e. only the ones that were previously 
attempted in the Prolog and could not be emitted because their size was missing 
(had not been emitted yet).

I have dropped the previous intention of emitting __kmpc_alloc_shared for 
thread local variables which have dynamic size. I am emitting dynamic allocas 
(as the test shows) which will fail in the backend as expected. This behavior 
needs to be resolved separately in the backend according to @arsenm  and any 
workaround in the frontend would have to live in a standalone patch that can be 
reverted when a fix to the backend is performed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153883

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to