[all-commits] [llvm/llvm-project] 0af53d: [mlir] simplify type constraints in AVX512 dialect

ftynse via All-commits all-commits at lists.llvm.org
Wed Mar 10 04:07:46 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0af53de3699997d04bc0e23f6b366c26a4a9268b
      https://github.com/llvm/llvm-project/commit/0af53de3699997d04bc0e23f6b366c26a4a9268b
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2021-03-10 (Wed, 10 Mar 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/AVX512/AVX512.td

  Log Message:
  -----------
  [mlir] simplify type constraints in AVX512 dialect

VectorOfLengthAndType accepts a cartesian product of given lengths and types
rather than types produced by co-indexed values in the corresponding lists.
Update the definitions accordingly. The type validity is already enforced by
op traits.

Reviewed By: nicolasvasilache, springerm

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


  Commit: a776942ba1aa0e381dd41a01de4b54fc5dc431cd
      https://github.com/llvm/llvm-project/commit/a776942ba1aa0e381dd41a01de4b54fc5dc431cd
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2021-03-10 (Wed, 10 Mar 2021)

  Changed paths:
    R mlir/include/mlir/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.h
    M mlir/include/mlir/Dialect/AVX512/AVX512.td
    M mlir/include/mlir/Dialect/AVX512/CMakeLists.txt
    A mlir/include/mlir/Dialect/AVX512/Transforms.h
    M mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt
    R mlir/include/mlir/Dialect/LLVMIR/LLVMAVX512.td
    R mlir/include/mlir/Dialect/LLVMIR/LLVMAVX512Dialect.h
    M mlir/include/mlir/InitAllDialects.h
    A mlir/include/mlir/Target/LLVMIR/Dialect/AVX512/AVX512ToLLVMIRTranslation.h
    M mlir/include/mlir/Target/LLVMIR/Dialect/All.h
    R mlir/include/mlir/Target/LLVMIR/Dialect/LLVMAVX512/LLVMAVX512ToLLVMIRTranslation.h
    R mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
    R mlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
    M mlir/lib/Conversion/CMakeLists.txt
    M mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
    M mlir/lib/Dialect/AVX512/CMakeLists.txt
    M mlir/lib/Dialect/AVX512/IR/AVX512Dialect.cpp
    A mlir/lib/Dialect/AVX512/IR/CMakeLists.txt
    A mlir/lib/Dialect/AVX512/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/AVX512/Transforms/LegalizeForLLVMExport.cpp
    M mlir/lib/Dialect/LLVMIR/CMakeLists.txt
    R mlir/lib/Dialect/LLVMIR/IR/LLVMAVX512Dialect.cpp
    M mlir/lib/Target/LLVMIR/CMakeLists.txt
    A mlir/lib/Target/LLVMIR/Dialect/AVX512/AVX512ToLLVMIRTranslation.cpp
    A mlir/lib/Target/LLVMIR/Dialect/AVX512/CMakeLists.txt
    M mlir/lib/Target/LLVMIR/Dialect/CMakeLists.txt
    R mlir/lib/Target/LLVMIR/Dialect/LLVMAVX512/CMakeLists.txt
    R mlir/lib/Target/LLVMIR/Dialect/LLVMAVX512/LLVMAVX512ToLLVMIRTranslation.cpp
    R mlir/test/Conversion/AVX512ToLLVM/convert-to-llvm.mlir
    A mlir/test/Dialect/AVX512/legalize-for-llvm.mlir
    M mlir/test/Target/LLVMIR/avx512.mlir
    M mlir/test/mlir-opt/commandline.mlir

  Log Message:
  -----------
  [mlir] squash LLVM_AVX512 dialect into AVX512

The dialect separation was introduced to demarkate ops operating in different
type systems. This is no longer the case after the LLVM dialect has migrated to
using built-in vector types, so the original reason for separation is no longer
valid. Squash the two dialects into one.

The code size decrease isn't quite large: the ops originally in LLVM_AVX512 are
preserved because they match LLVM IR intrinsics specialized for vector element
bitwidth. However, it is still conceptually beneficial to have only one
dialect. I originally considered to use Tablegen multiclasses to define both
the type-polymorphic op and its two intrinsic-related instantiations, but
decided against it given both the complexity of the required Tablegen input and
its dissimilarity with the rest of ODS-defined ops, both potentially resulting
in very poor maintainability.

Depends On D98327

Reviewed By: nicolasvasilache, springerm

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


Compare: https://github.com/llvm/llvm-project/compare/2ce4caf4143b...a776942ba1aa


More information about the All-commits mailing list