168213f91c
Legacy implementation of the LLVM dialect in MLIR contained an instance of llvm::Module as it was required to parse LLVM IR types. The access to the data layout of this module was exposed to the users for convenience, but in practice this layout has always been the default one obtained by parsing an empty layout description string. Current implementation of the dialect no longer relies on wrapping LLVM IR types, but it kept an instance of DataLayout for compatibility. This effectively forces a single data layout to be used across all modules in a given MLIR context, which is not desirable. Remove DataLayout from the LLVM dialect and attach it as a module attribute instead. Since MLIR does not yet have support for data layouts, use the LLVM DataLayout in string form with verification inside MLIR. Introduce the layout when converting a module to the LLVM dialect and keep the default "" description for compatibility. This approach should be replaced with a proper MLIR-based data layout when it becomes available, but provides an immediate solution to compiling modules with different layouts, e.g. for GPUs. This removes the need for LLVMDialectImpl, which is also removed. Depends On D85650 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D85652 |
||
---|---|---|
.. | ||
Analysis | ||
Bindings | ||
CAPI | ||
Conversion | ||
Dialect | ||
EDSC | ||
ExecutionEngine | ||
Interfaces | ||
IR | ||
Parser | ||
Pass | ||
Reducer | ||
Support | ||
TableGen | ||
Target | ||
Transforms | ||
Translation | ||
CMakeLists.txt |