jhuber6 added inline comments.
================ Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:1085 } - for (const auto *VD : I->getSecond().EscapedVariableLengthDecls) { - // Use actual memory size of the VLA object including the padding ---------------- doru1004 wrote: > ABataev wrote: > > Why this code is removed? > I could not understand why this code is here in the first place since it > doesn't seem that it could ever work correctly (and it doesn't seem to be > covered by any existing tests). Maybe I'm wrong but that was my understanding > of it. So what seems to happen is that this code attempts to emit a > kmpc_alloc_shared before the actual size calculation is emitted. So if the > VLA size is something that the user defines such as `int N = 10;` then that > code will not have been emitted at this point. When the expression computing > the size of the VLA uses `N`, the code that is deleted here would just fail > to find the VLA size in the attempt to emit the kmpc_alloc_shared. The > emission of the VLA as kmpc_alloc_shared needs to happen after the expression > of the size is emitted. I'm pretty sure I was the one that wrote this code, and at the time I don't recall it really working. I remember there was something else that expected this to be here, but for what utility I do not recall. VLAs were never tested or used. 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