[all-commits] [llvm/llvm-project] c0e128: [acc] Introduce ACCRoutineLowering for `acc routin...
Razvan Lupusoru via All-commits
all-commits at lists.llvm.org
Thu Mar 12 14:51:58 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c0e128627a247f3892718b667cb4d7e4cb393977
https://github.com/llvm/llvm-project/commit/c0e128627a247f3892718b667cb4d7e4cb393977
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-03-12 (Thu, 12 Mar 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsCG.h
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
A mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsCG.cpp
A mlir/test/Dialect/OpenACC/acc-routine-lowering.mlir
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsCGTest.cpp
Log Message:
-----------
[acc] Introduce ACCRoutineLowering for `acc routine` specialization (#186243)
This pass handles `acc routine` directive by creating specialized
functions with appropriate parallelism information that can be used for
eventual creation of device function.
For each acc.routine that is not bound by name, the pass creates a new
function (the "device" copy) whose body is a single acc.compute_region
containing a clone of the original (host) function body. Parallelism is
expressed by one acc.par_width derived from the routine's clauses (seq,
vector, worker, gang). The device copy created is simply a staging place
for eventual move to device module level function.
---------
Co-authored-by: Delaram Talaashrafi <dtalaashrafi at nvidia.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list