[all-commits] [llvm/llvm-project] 168213: [mlir] Move data layout from LLVMDialect to module...
ftynse via All-commits
all-commits at lists.llvm.org
Mon Aug 17 06:12:56 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 168213f91c571352c56f432573513cba3f9ba61b
https://github.com/llvm/llvm-project/commit/168213f91c571352c56f432573513cba3f9ba61b
Author: Alex Zinenko <zinenko at google.com>
Date: 2020-08-17 (Mon, 17 Aug 2020)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
M mlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h
M mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
A mlir/test/Conversion/StandardToLLVM/convert-data-layout.mlir
M mlir/test/Dialect/LLVMIR/invalid.mlir
M mlir/test/Target/llvmir.mlir
Log Message:
-----------
[mlir] Move data layout from LLVMDialect to module Op attributes
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
More information about the All-commits
mailing list