[all-commits] [llvm/llvm-project] 78ab38: [OpenACC][CIR] Implement 'gang' lowering on `routi...

Erich Keane via All-commits all-commits at lists.llvm.org
Thu Dec 4 11:04:41 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 78ab38996d3fe0caef155d469f53c30420b39e3b
      https://github.com/llvm/llvm-project/commit/78ab38996d3fe0caef155d469f53c30420b39e3b
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
    M clang/test/CIR/CodeGenOpenACC/routine-clauses.cpp
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp

  Log Message:
  -----------
  [OpenACC][CIR] Implement 'gang' lowering on `routine' (#170506)

This is a bit more work than the worker/vector/seq in that gang takes an
optional `dim` argument. The argument is always 1, 2, or 3 (constants!),
and the other argument-types that gang allows elsewhere aren't valid
here.

For the IR, we had to add 2 overloads of `addGang`. The first just adds
the 'valueless' one, which can just add to the one ArrayAttr. The second
has to add to TWO lists.

Note: The standard limits to only 1 `gang` per construct. We decided
after evaluating it, that it really means 'per device-type region'.
However, device_type isn't implemented yet, so we'll add tests for that
when we do.

At the moment, we added the device_type infrastructure however.



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