[all-commits] [llvm/llvm-project] 0c40af: [mlir] First-party modeling of LLVM types

ftynse via All-commits all-commits at lists.llvm.org
Mon Aug 3 06:45:50 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0c40af6b594f6eb2dcd43cdb2bc2f4584ec8ca15
      https://github.com/llvm/llvm-project/commit/0c40af6b594f6eb2dcd43cdb2bc2f4584ec8ca15
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2020-08-03 (Mon, 03 Aug 2020)

  Changed paths:
    A mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
    M mlir/include/mlir/IR/DialectImplementation.h
    M mlir/lib/Dialect/LLVMIR/CMakeLists.txt
    A mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
    A mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
    A mlir/lib/Dialect/LLVMIR/IR/TypeDetail.h
    M mlir/lib/Parser/DialectSymbolParser.cpp
    A mlir/test/Dialect/LLVMIR/types-invalid.mlir
    A mlir/test/Dialect/LLVMIR/types.mlir
    M mlir/test/lib/Dialect/CMakeLists.txt
    A mlir/test/lib/Dialect/LLVMIR/CMakeLists.txt
    A mlir/test/lib/Dialect/LLVMIR/LLVMTypeTestDialect.cpp
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  [mlir] First-party modeling of LLVM types

The current modeling of LLVM IR types in MLIR is based on the LLVMType class
that wraps a raw `llvm::Type *` and delegates uniquing, printing and parsing to
LLVM itself. This model makes thread-safe type manipulation hard and is being
progressively replaced with a cleaner MLIR model that replicates the type
system.  Introduce a set of classes reflecting the LLVM IR type system in MLIR
instead of wrapping the existing types. These are currently introduced as
separate classes without affecting the dialect flow, and are exercised through
a test dialect. Once feature parity is reached, the old implementation will be
gradually substituted with the new one.

Depends On D84171

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D84339




More information about the All-commits mailing list