aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/InlineFunction.cpp
diff options
context:
space:
mode:
authorJohannes Doerfert <johannes@jdoerfert.de>2019-12-23 15:50:27 -0600
committerJohannes Doerfert <johannes@jdoerfert.de>2020-02-02 23:18:25 -0600
commitc953409ff89e38f5aa5927f5adae3078db45d81c (patch)
treee660931c4b4bdf58f5afbb4ae1a8f67d120d0dd4 /llvm/lib/Transforms/Utils/InlineFunction.cpp
parent7eeb90152859f254fe4e9182c749ab065d33c89d (diff)
downloadllvm-c953409ff89e38f5aa5927f5adae3078db45d81c.zip
llvm-c953409ff89e38f5aa5927f5adae3078db45d81c.tar.gz
llvm-c953409ff89e38f5aa5927f5adae3078db45d81c.tar.bz2
[OpenMP][Part 1] Reusable OpenMP context/traits handling
This is the first of multiple parts to make OpenMP context/trait handling reusable and generic. This patch was originally part of D71830 but with the unit tests it can be tested independently. This patch implements an almost complete handling of OpenMP contexts/traits such that we can reuse most of the logic in Flang through the OMPContext.{h,cpp} in llvm/Frontend/OpenMP. All but construct SIMD specifiers, e.g., inbranch, and the device ISA selector are define in llvm/lib/Frontend/OpenMP/OMPKinds.def. From these definitions we generate the enum classes TraitSet, TraitSelector, and TraitProperty as well as conversion and helper functions in llvm/lib/Frontend/OpenMP/OMPContext.{h,cpp}. The OpenMP context is now an explicit object (see `struct OMPContext`). This is in anticipation of construct traits that need to be tracked. The OpenMP context, as well as the VariantMatchInfo, are basically made up of a set of active or respectively required traits, e.g., 'host', and an ordered container of constructs which allows duplication. Matching and scoring is kept as generic as possible to allow easy extension in the future. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D71847
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions