[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