[all-commits] [llvm/llvm-project] df4746: [mlir][OpenMP] Pack task private variables into a ...

Tom Eccles via All-commits all-commits at lists.llvm.org
Mon Feb 24 05:21:52 PST 2025


  Branch: refs/heads/users/tblah/delayed-task-exec-5
  Home:   https://github.com/llvm/llvm-project
  Commit: df47461dcf1f9244da472efdcc57d266ecd42b34
      https://github.com/llvm/llvm-project/commit/df47461dcf1f9244da472efdcc57d266ecd42b34
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir
    A mlir/test/Target/LLVMIR/openmp-task-privatization.mlir

  Log Message:
  -----------
  [mlir][OpenMP] Pack task private variables into a heap-allocated context struct

See RFC:
https://discourse.llvm.org/t/rfc-openmp-supporting-delayed-task-execution-with-firstprivate-variables/83084

The aim here is to ensure that tasks which are not executed for a while
after they are created do not try to reference any data which are now
out of scope. This is done by packing the data referred to by the task
into a heap allocated structure (freed at the end of the task).

I decided to create the task context structure in
OpenMPToLLVMIRTranslation instead of adapting how it is done
CodeExtractor (via OpenMPIRBuilder] because CodeExtractor is (at least
in theory) generic code which could have other unrelated uses.


  Commit: 9a4fe6aeddb510c582322fbad9a1eda10fd034dc
      https://github.com/llvm/llvm-project/commit/9a4fe6aeddb510c582322fbad9a1eda10fd034dc
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir
    M mlir/test/Target/LLVMIR/openmp-task-privatization.mlir

  Log Message:
  -----------
  Allocate simple private vars inside of the task

There's no need to put the variable in the context structure if it can
be initialized without reading from the mold variable.

This leads to much simpler code generation for nested tasks which only
privatize simple scalar variables and do not use firstprivate. This
works around the failure in 0226_0013 (Fujitsu test).


  Commit: 3f02adf573612ce884f1c3a964aafee9381c9afa
      https://github.com/llvm/llvm-project/commit/3f02adf573612ce884f1c3a964aafee9381c9afa
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Add methods to operation to test if the mold arg is read


  Commit: 08573d23cd3f7a498f167acd0f3e70d5df6cb947
      https://github.com/llvm/llvm-project/commit/08573d23cd3f7a498f167acd0f3e70d5df6cb947
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Fix comment


  Commit: a8ecb618de49346e3090b4fc7b56740686cfe87f
      https://github.com/llvm/llvm-project/commit/a8ecb618de49346e3090b4fc7b56740686cfe87f
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Make logic clearer


  Commit: 8ac248a112211467e2da48896a4956be5b867acc
      https://github.com/llvm/llvm-project/commit/8ac248a112211467e2da48896a4956be5b867acc
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Move llvm private vars into task context struct manager


  Commit: fbba1f3011fbd1f44189b7adcccd133cd5ed6250
      https://github.com/llvm/llvm-project/commit/fbba1f3011fbd1f44189b7adcccd133cd5ed6250
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Fix comment


  Commit: 4e9cd7b44da1e89830e3dba1c6e953b43a91e780
      https://github.com/llvm/llvm-project/commit/4e9cd7b44da1e89830e3dba1c6e953b43a91e780
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Reserve the correct size


  Commit: ffec9f4903a5967c2da6cf76110af7136f8e9b41
      https://github.com/llvm/llvm-project/commit/ffec9f4903a5967c2da6cf76110af7136f8e9b41
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Update charbox comment


  Commit: bb0e213b21ba7700e0b1bcfa30cccffdc52da321
      https://github.com/llvm/llvm-project/commit/bb0e213b21ba7700e0b1bcfa30cccffdc52da321
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Rename llvmPrivateVars to llvmPrivateVarGEPs


  Commit: 459d2d5ea7f803cc6553b7d9007283281263f1fe
      https://github.com/llvm/llvm-project/commit/459d2d5ea7f803cc6553b7d9007283281263f1fe
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2025-02-24 (Mon, 24 Feb 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  Fix skatrak's comments


Compare: https://github.com/llvm/llvm-project/compare/081fb2e95514...459d2d5ea7f8

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