Add support for the llvm::TargetExtType to the MLIR LLVM dialect.
Target extension types were introduced to represent target-specific types, which are opaque to the compiler and optimizations.
The patch also enforces some of the constraints defined for the target extension type in the LLVM language reference manual.
Signed-off-by: Lukas Sommer <lukas.sommer@codeplay.com>
ultra nit: I would probably use LLVM_LoadableTargetExtType to use the same naming as below.