[Mlir-commits] [llvm] [mlir] [OMPIRBuilder] - Make offloading input data persist for deferred target tasks (PR #133499)
Sergio Afonso
llvmlistbot at llvm.org
Thu May 8 05:50:53 PDT 2025
================
@@ -7093,49 +7112,110 @@ static Function *emitTargetTaskProxyFunction(OpenMPIRBuilder &OMPBuilder,
ProxyFn->getArg(0)->setName("thread.id");
ProxyFn->getArg(1)->setName("task");
+ bool HasShareds = SharedArgsOperandNo > 0;
+ bool HasOffloadingArrays = NumOffloadingArrays > 0;
BasicBlock *EntryBB =
BasicBlock::Create(Builder.getContext(), "entry", ProxyFn);
Builder.SetInsertPoint(EntryBB);
- bool HasShareds = StaleCI->arg_size() > 1;
- // TODO: This is a temporary assert to prove to ourselves that
- // the outlined target launch function is always going to have
- // atmost two arguments if there is any data shared between
- // host and device.
- assert((!HasShareds || (StaleCI->arg_size() == 2)) &&
- "StaleCI with shareds should have exactly two arguments.");
-
Value *ThreadId = ProxyFn->getArg(0);
+ Value *TaskWithPrivates = ProxyFn->getArg(1);
----------------
skatrak wrote:
Nit: If you move these to right after creating `ProxyFn`, you can skip the calls to `getArg(...)` when setting their names.
https://github.com/llvm/llvm-project/pull/133499
More information about the Mlir-commits
mailing list