[all-commits] [llvm/llvm-project] 5d9cb2: [OpenMP] Run the Attributor as part of the device ...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Mon Jan 23 22:48:07 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5d9cb20f40306eecfde3752b59b9d79744626a01
      https://github.com/llvm/llvm-project/commit/5d9cb20f40306eecfde3752b59b9d79744626a01
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-23 (Mon, 23 Jan 2023)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt

  Log Message:
  -----------
  [OpenMP] Run the Attributor as part of the device runtime optimization

This will help us propagate assumptions to call sites, among other
things.


  Commit: d41f93dae98964a1e75569d622f493ed914a1f73
      https://github.com/llvm/llvm-project/commit/d41f93dae98964a1e75569d622f493ed914a1f73
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-23 (Mon, 23 Jan 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp

  Log Message:
  -----------
  [OpenMP] Readnone calls do not have non-local side-effects


  Commit: 5238df7ed594712713aff9880354e67b05ac16c4
      https://github.com/llvm/llvm-project/commit/5238df7ed594712713aff9880354e67b05ac16c4
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-23 (Mon, 23 Jan 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/value-simplify-openmp-opt.ll

  Log Message:
  -----------
  [Attributor] Allow (inter-procedural) "CFG" reasoning for aligned regions

If an instruction is executed in an aligned region we can ignore
threading effects and use CFG reasoning (dominance and reachability).
This is true because all threads are together in an aligned region and
there cannot be one waiting for a signal at a place not connected via
the control flow.

More dedicated tests will follow.

More details can be found here:
"Co-Designing an OpenMP GPU Runtime and Optimizations for Near-Zero
Overhead Execution", IPDPS 2022,
https://www.osti.gov/servlets/purl/1890094


Compare: https://github.com/llvm/llvm-project/compare/40003af98456...5238df7ed594


More information about the All-commits mailing list