https://github.com/jtb20 created https://github.com/llvm/llvm-project/pull/200405
Build on the per-task relocation infrastructure introduced for 'omp task' in the previous patch and apply the same scheme to taskloop tasks recorded inside a taskgraph. Without this, by-reference captures inside a recorded taskloop iteration still point at the original recording's stack on each replay. On the compiler side (CGOpenMPRuntime.cpp), emit a relocation thunk for the taskloop's captured statement via the shared emitTaskRelocationFunction helper and pass it as the new trailing argument of __kmpc_taskgraph_taskloop. The now-unused 'shareds' and 'sizeof_shareds' parameters are dropped from the call and from TGTaskLoopArgs. On the runtime side, update __kmpc_taskgraph_taskloop to match the new ABI (drop the dead 'shareds' / 'sizeof_shareds' parameters, add the trailing kmp_task_relocate_t parameter) and plumb the callback through the taskgraph variant of __kmp_taskloop and __kmp_taskloop_linear so every recorded subtask gets node->relocate = reloc, mirroring the explicit-task path. Non-taskgraph callers pass a default nullptr and are unaffected. Add taskloop counterparts of the omp-task runtime tests added in the previous patch. Assisted-By: Claude Opus 4.7 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
