[mlir] Add option to use custom base class for dialect in LLVMIRIntrinsicGen.
authorMarcello Maggioni <hayarms@gmail.com>
Wed, 22 Jan 2020 22:22:29 +0000 (14:22 -0800)
committerMarcello Maggioni <hayarms@gmail.com>
Thu, 23 Jan 2020 19:23:25 +0000 (11:23 -0800)
commitbe9f09c768f925bcd0e394043663ed005cf7a17f
tree37f5d31a9dcf6ab713b761bfebad65010680c3f9
parent794b8a0329d1356455970fe1ae26f5d3b38e7906
[mlir] Add option to use custom base class for dialect in LLVMIRIntrinsicGen.

Summary:
LLVMIRIntrinsicGen is using LLVM_Op as the base class for intrinsics.
This works for LLVM intrinsics in the LLVM Dialect, but when we are
trying to convert custom intrinsics that originate from a custom
LLVM dialect (like NVVM or ROCDL) these usually have a different
"cppNamespace" that needs to be applied to these dialect.

These dialect specific characteristics (like "cppNamespace")
are typically organized by creating a custom op (like NVVM_Op or
ROCDL_Op) that passes the correct dialect to the LLVM_OpBase class.

It seems natural to allow LLVMIRIntrinsicGen to take that into
consideration when generating the conversion code from one of these
dialect to a set of target specific intrinsics.

Reviewers: rriddle, andydavis1, antiagainst, nicolasvasilache, ftynse

Subscribers: jdoerfert, mehdi_amini, jpienaar, burmako, shauheen, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73233
mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
mlir/test/mlir-tblgen/llvm-intrinsics.td
mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp