ABataev added a comment. In D102107#2832286 <https://reviews.llvm.org/D102107#2832286>, @jdoerfert wrote:
> In D102107#2824581 <https://reviews.llvm.org/D102107#2824581>, @ABataev wrote: > >> In D102107#2823706 <https://reviews.llvm.org/D102107#2823706>, @jdoerfert >> wrote: >> >>> In D102107#2821976 <https://reviews.llvm.org/D102107#2821976>, @ABataev >>> wrote: >>> >>>> We used this kind of codegen initially but later found out that it causes >>>> a large overhead when gathering pointers into a record. What about hybrid >>>> scheme where the first args are passed as arguments and others (if any) >>>> are gathered into a record? >>> >>> I'm confused, maybe I misunderstand the problem. The parallel function >>> arguments need to go from the main thread to the workers somehow, I don't >>> see how this is done w/o a record. This patch makes it explicit though. >> >> Pass it in a record for workers only? And use a hybrid scheme for all other >> parallel regions. > > I still do not follow. What does it mean for workers only? What is a hybrid > scheme? And, probably most importantly, how would we not eventually put > everything into a record anyway? On the host you don’t need to put everything into a record, especially for small parallel regions. Pass some first args in registers and only the remaining args gather into the record. For workers just pass all args in the record. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102107/new/ https://reviews.llvm.org/D102107 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits