This is the initial patch to use the OpenMP-IR-Builder, as discussed on
the mailing list ([1] 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.
Parts have been extracted into D69853 and D69785.
The plan is to have multiple people working on moving logic from Clang
here once the initial scaffolding landed.
[1] http://lists.flang-compiler.org/pipermail/flang-dev_lists.flang-compiler.org/2019-May/000197.html
Do we need to expose this option to driver or it is enough to have just a frontend option? If still need to have a driver option, add a test for driver.