llvm-project/mlir
aartbik ceb1b327b5 [mlir] [VectorOps] Add the ability to mark FP reductions with "reassociate" attribute
Rationale:
In general, passing "fastmath" from MLIR to LLVM backend is not supported, and even just providing such a feature for experimentation is under debate. However, passing fine-grained fastmath related attributes on individual operations is generally accepted. This CL introduces an option to instruct the vector-to-llvm lowering phase to annotate floating-point reductions with the "reassociate" fastmath attribute, which allows the LLVM backend to use SIMD implementations for such constructs. Oher lowering passes can start using this mechanism right away in cases where reassociation is allowed.

Benefit:
For some microbenchmarks on x86-avx2, speedups over 20 were observed for longer vector (due to cleaner, spill-free and SIMD exploiting code).

Usage:
mlir-opt --convert-vector-to-llvm="reassociate-fp-reductions"

Reviewed By: ftynse, mehdi_amini

Differential Revision: https://reviews.llvm.org/D82624
2020-06-26 11:03:14 -07:00
..
cmake/modules Install the MLIRTableGen static library. 2020-06-11 18:23:24 -07:00
docs [mlir] support returning unranked memrefs 2020-06-26 15:37:37 +02:00
examples [mlir][DialectConversion] Refactor how block argument types get converted 2020-06-18 15:59:22 -07:00
include [mlir] [VectorOps] Add the ability to mark FP reductions with "reassociate" attribute 2020-06-26 11:03:14 -07:00
integration_test [mlir] [integration-test] Let target check-mlir imply target check-mlir-integration too 2020-06-23 15:22:39 -07:00
lib [mlir] [VectorOps] Add the ability to mark FP reductions with "reassociate" attribute 2020-06-26 11:03:14 -07:00
test [mlir] [VectorOps] Add the ability to mark FP reductions with "reassociate" attribute 2020-06-26 11:03:14 -07:00
tools [mlir][vulkan-runner] Make vulkan runner use GPU device memory 2020-06-26 08:03:06 -07:00
unittests [mlir-tblgen] Use fully qualified names in generated code files 2020-06-26 15:05:33 +02:00
utils [MLIR][SPIRV] Extend automation script to generate coverage report. 2020-06-23 11:42:59 -04:00
.clang-format [mlir] add .clang-format 2019-03-29 12:41:43 -07:00
.clang-tidy Fix MLIR clang-tidy: when tweaking it does not inherit from the parent 2020-03-07 17:44:21 +00:00
CMakeLists.txt [mlir] [integration_test] Make integration tests default OFF 2020-06-15 14:33:18 -07:00
LICENSE.TXT Add the Apache2 with LLVM exceptions license to MLIR 2019-12-24 00:58:06 -08:00
README.md mlir README.md: Fix the syntax 2019-12-24 13:31:07 +01:00

README.md

Multi-Level Intermediate Representation

See https://mlir.llvm.org/ for more information.