For an explanation of these patches see D154153.
Commit message:
This patch adds the OffloadingTranslationAttrTrait trait and the
GPUOffloadingLLVMTranslationAttrInterface attribute interface.
The interface indicates that an attribute is a GPU offloading translation
attribute. These kinds of attributes must implement an interface for handling
the translation of GPU offloading operations like gpu.binary & gpu.launch_func.
The interface is meant to be used as an opaque interface for embedding GPU
binaries into LLVM modules and launching GPU kernels.
Depends on D154129
Can we keep the TableGen name identical to the C++ name here? It got me confused on subsequence patches to read one and the other.