[all-commits] [llvm/llvm-project] bd30a7: [mlir] use built-in vector types instead of LLVM d...

ftynse via All-commits all-commits at lists.llvm.org
Tue Jan 12 01:04:53 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bd30a796fc4b51750248ccba29cd6fb1f61859f5
      https://github.com/llvm/llvm-project/commit/bd30a796fc4b51750248ccba29cd6fb1f61859f5
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2021-01-12 (Tue, 12 Jan 2021)

  Changed paths:
    M mlir/docs/ConversionToLLVMDialect.md
    M mlir/docs/Dialects/LLVM.md
    M mlir/docs/SPIRVToLLVMDialectConversion.md
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
    M mlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-fp.mlir
    M mlir/integration_test/Dialect/LLVMIR/CPU/test-vector-reductions-int.mlir
    M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    M mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
    M mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
    M mlir/lib/Target/LLVMIR/TypeTranslation.cpp
    M mlir/test/Conversion/ArmNeonToLLVM/convert-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/bitwise-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/cast-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/comparison-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/constant-op-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/func-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/glsl-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/logical-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/memory-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/misc-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/shift-ops-to-llvm.mlir
    M mlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.mlir
    M mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
    M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-mask-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-reduction-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Conversion/VectorToROCDL/vector-to-rocdl.mlir
    M mlir/test/Dialect/LLVMIR/dialect-cast.mlir
    M mlir/test/Dialect/LLVMIR/invalid.mlir
    M mlir/test/Dialect/LLVMIR/nvvm.mlir
    M mlir/test/Dialect/LLVMIR/rocdl.mlir
    M mlir/test/Dialect/LLVMIR/roundtrip.mlir
    M mlir/test/Dialect/LLVMIR/types-invalid.mlir
    M mlir/test/Dialect/LLVMIR/types.mlir
    M mlir/test/Target/arm-neon.mlir
    M mlir/test/Target/arm-sve.mlir
    M mlir/test/Target/avx512.mlir
    M mlir/test/Target/import.ll
    M mlir/test/Target/llvmir-intrinsics.mlir
    M mlir/test/Target/llvmir-types.mlir
    M mlir/test/Target/llvmir.mlir
    M mlir/test/Target/nvvmir.mlir
    M mlir/test/Target/rocdl.mlir

  Log Message:
  -----------
  [mlir] use built-in vector types instead of LLVM dialect types when possible

Continue the convergence between LLVM dialect and built-in types by using the
built-in vector type whenever possible, that is for fixed vectors of built-in
integers and built-in floats. LLVM dialect vector type is still in use for
pointers, less frequent floating point types that do not have a built-in
equivalent, and scalable vectors. However, the top-level `LLVMVectorType` class
has been removed in favor of free functions capable of inspecting both built-in
and LLVM dialect vector types: `LLVM::getVectorElementType`,
`LLVM::getNumVectorElements` and `LLVM::getFixedVectorType`. Additional work is
necessary to design an implemented the extensions to built-in types so as to
remove the `LLVMFixedVectorType` entirely.

Note that the default output format for the built-in vectors does not have
whitespace around the `x` separator, e.g., `vector<4xf32>` as opposed to the
LLVM dialect vector type format that does, e.g., `!llvm.vec<4 x fp128>`. This
required changing the FileCheck patterns in several tests.

Reviewed By: mehdi_amini, silvas

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




More information about the All-commits mailing list