This patch migrates the emitOffloadingArrays and EmitNonContiguousDescriptor functions from Clang codegen to OpenMPIRBuilder.
If this passes all our tests, it looks fine. A few nits below, try to address if possible.
If it helps, you can define the struct type in OMPKind.td, I think that's the name.
Can we do an early exit here?
Generally try to have the "short" branch first, especially one liners.
Add a message to all asserts, please.