[libcxx-commits] [libcxxabi] [OpenMPIRBuilder] Remove wrapper function in `createTask`, `createTeams` (PR #67723)
Johannes Doerfert via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Oct 24 12:49:24 PDT 2023
================
@@ -1523,41 +1560,31 @@ OpenMPIRBuilder::createTask(const LocationDescription &Loc,
BasicBlock *TaskAllocaBB =
splitBB(Builder, /*CreateBranch=*/true, "task.alloca");
+ InsertPointTy TaskAllocaIP =
+ InsertPointTy(TaskAllocaBB, TaskAllocaBB->begin());
+ InsertPointTy TaskBodyIP = InsertPointTy(TaskBodyBB, TaskBodyBB->begin());
+ BodyGenCB(TaskAllocaIP, TaskBodyIP);
+
OutlineInfo OI;
OI.EntryBB = TaskAllocaBB;
OI.OuterAllocaBB = AllocaIP.getBlock();
OI.ExitBB = TaskExitBB;
- OI.PostOutlineCB = [this, Ident, Tied, Final, IfCondition,
- Dependencies](Function &OutlinedFn) {
- // The input IR here looks like the following-
- // ```
- // func @current_fn() {
- // outlined_fn(%args)
- // }
- // func @outlined_fn(%args) { ... }
- // ```
- //
- // This is changed to the following-
- //
- // ```
- // func @current_fn() {
- // runtime_call(..., wrapper_fn, ...)
- // }
- // func @wrapper_fn(..., %args) {
- // outlined_fn(%args)
- // }
- // func @outlined_fn(%args) { ... }
- // ```
- // The stale call instruction will be replaced with a new call instruction
- // for runtime call with a wrapper function.
+ // Add the thread ID argument.
+ std::stack<Instruction *> ToBeDeleted;
----------------
jdoerfert wrote:
Why not a SmallVector, like we use everywhere else? We can reasonably guess the size to avoid dynamic allocations.
https://github.com/llvm/llvm-project/pull/67723
More information about the libcxx-commits
mailing list