[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