This patch introduces an alternative OpenMP GPU kernel offloading
interface called target kernel region (or TRegion).
The commit includes the runtime library implementation for the NVPTX
device plugin, implemented mostly in terms of the existing
functionality.
The interface is deliberately simple to be easily analyzable in the
middle end. Design decisions included:
- Hide all (complex) implementation choices in the runtime library but allow complete removal of the abstraction once the runtime is inlined.
- Provide all runtime calls with sufficient, easy encoded information.
All exported functions are declared in the interface.h file. I don't think we need an extra interface file here