This is the initial patch to use the OpenMP-IR-Builder, as discussed on
the mailing list ( and later) and at the US Dev Meeting'19.
The design is similar to D61953 but:
- placed in llvm/lib/IR/ next to IRBuilder, for lack of a better location.
- in a non-WIP status, with proper documentation and working.
- using a OpenMPKinds.def file to manage lists of directives, runtime functions, types, ..., similar to the current Clang implementation.
- restricted to handle only (simple) barriers, to implement most #pragma omp barrier directives and most implicit barriers.
- properly hooked into Clang to be used if possible.
- compatible with the remaining code generation.
The plan is to have multiple people working on moving logic from Clang
here once the initial scaffolding landed.