SuccessChanges

Summary

  1. [mlir:JitRunner] Use custom shared library init/destroy functions if available (details)
  2. Don't take the address of a temporary (details)
  3. [mlir] Add a hook for initializing passes before execution and use it in the Canonicalizer (details)
  4. [mlir][vector] generalized masked l/s and compressed l/s with indices (details)
Commit 1fc986427ba32384a03286472d3c04b37420ad73 by ezhulenev
[mlir:JitRunner] Use custom shared library init/destroy functions if available

Use custom mlir runner init/destroy functions to safely init and destroy shared libraries loaded by the JitRunner.

This mechanism is ignored for Windows builds (for now) because init/destroy functions are not exported, and library unloading relies on static destructors.

Re-submit https://reviews.llvm.org/D94270 with a temporary workaround for windows

Differential Revision: https://reviews.llvm.org/D94312
The file was modifiedmlir/lib/ExecutionEngine/CMakeLists.txt
The file was modifiedmlir/lib/ExecutionEngine/AsyncRuntime.cpp
The file was modifiedmlir/lib/ExecutionEngine/JitRunner.cpp
Commit aa1943a2d167823e6d506895292477f79874dd20 by Adrian Prantl
Don't take the address of a temporary
The file was modifiedlldb/source/Core/ValueObject.cpp
Commit 1ba5ea67a30170053964a28f2f47aea4bb7f5ff1 by riddleriver
[mlir] Add a hook for initializing passes before execution and use it in the Canonicalizer

This revision adds a new `initialize(MLIRContext *)` hook to passes that allows for them to initialize any heavy state before the first execution of the pass. A concrete use case of this is with patterns that rely on PDL, given that PDL is compiled at run time it is imperative that compilation results are cached as much as possible. The first use of this hook is in the Canonicalizer, which has the added benefit of reducing the number of expensive accesses to the context when collecting patterns.

Differential Revision: https://reviews.llvm.org/D93147
The file was modifiedmlir/include/mlir/Pass/PassManager.h
The file was modifiedmlir/docs/PassManagement.md
The file was modifiedmlir/include/mlir/Pass/Pass.h
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/lib/Pass/Pass.cpp
The file was modifiedmlir/lib/Pass/PassDetail.h
Commit a57def30f53990aafc3f64b9b7a0f60916cc7f61 by ajcbik
[mlir][vector] generalized masked l/s and compressed l/s with indices

Adding the ability to index the base address brings these operations closer
to the transfer read and write semantics (with lowering advantages), ensures
more consistent use in vector MLIR code (easier to read), and reduces the
amount of code duplication to lower memrefs into base addresses considerably
(making codegen less error-prone).

Reviewed By: ThomasRaoux

Differential Revision: https://reviews.llvm.org/D94278
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-mem-transforms.mlir
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-compress.mlir
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-maskedload.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-transforms.mlir
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-expand.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/integration_test/Dialect/Vector/CPU/test-maskedstore.mlir