[PATCH] D71989: [OpenMP][IRBuilder][WIP] Prototype `omp task` support

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 29 23:21:32 PST 2019


jdoerfert created this revision.
jdoerfert added reviewers: rogfer01, ABataev, JonChesterfield, kiranchandramohan, fghanim.
Herald added subscribers: guansong, bollu, hiraditya.
Herald added projects: OpenMP, LLVM.

NOTE: The patch is not complete and lacks testing but it should allow
      people to see how the IRBuilder will evolve and give feedback.

This patch adds support for `omp task` to the OpenMPIRBuilder. To
simplify this *and* to make optimizations of tasks possible, we
introduce a new interface: `__kmpc_task`.

Similar to TRegions, the new interface exposes front-end information in
a direct way. More importantly, the task create and task issue step are
conceptually not separated anymore as it is, together with other
non-user related code, hidden inside `__kmpc_task`.

Most of the properties of a task are supported already, incl. dependences.

The outlining logic used for `omp parallel` was (slightly) generalized
and reused but better abstractions are needed.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71989

Files:
  llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
  llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
  llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
  llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
  llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
  openmp/runtime/src/kmp.h
  openmp/runtime/src/kmp_tasking.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71989.235555.patch
Type: text/x-patch
Size: 43830 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191230/9c3d943e/attachment.bin>


More information about the llvm-commits mailing list