[mlir] Transform dialect: separate dependent and generated dialectsIn the Transform dialect extensions, provide the separate mechanism todeclare dependent dialects (the dialects the transform IR d
[mlir] Transform dialect: separate dependent and generated dialectsIn the Transform dialect extensions, provide the separate mechanism todeclare dependent dialects (the dialects the transform IR depends on)and the generated dialects (the dialects the payload IR may betransformed into). This allows the Transform dialect clients that areonly constructing the transform IR to avoid loading the dialectsrelevant for the payload IR along with the Transform dialect itself,thus decreasing the build/link time.Reviewed By: springermDifferential Revision: https://reviews.llvm.org/D130289
show more ...
[mlir][Transform] Make applyToOne return a DiagnosedSilenceableFailureThis revision revisits the implementation of applyToOne and its handlingof recoverable errors as well as propagation of null h
[mlir][Transform] Make applyToOne return a DiagnosedSilenceableFailureThis revision revisits the implementation of applyToOne and its handlingof recoverable errors as well as propagation of null handles.The implementation is simplified to always require passing a vector<Operation*>in which the results are returned, resulting in less template instantiation magic.Reviewed By: ftynseDifferential Revision: https://reviews.llvm.org/D129185
Apply clang-tidy fixes for modernize-use-emplace in SCFTransformOps.cpp (NFC)
[mlir][Transform] NFC - Pass TransformState as an argument to applyToOne methodsThis will allow implementing state-dependent behavior in the future.Differential Revision: https://reviews.llvm.org
[mlir][Transform] NFC - Pass TransformState as an argument to applyToOne methodsThis will allow implementing state-dependent behavior in the future.Differential Revision: https://reviews.llvm.org/D128327
[mlir] move SCF headers to SCF/{IR,Transforms} respectivelyThis aligns the SCF dialect file layout with the majority of the dialects.Reviewed By: jpienaarDifferential Revision: https://reviews.
[mlir] move SCF headers to SCF/{IR,Transforms} respectivelyThis aligns the SCF dialect file layout with the majority of the dialects.Reviewed By: jpienaarDifferential Revision: https://reviews.llvm.org/D128049
[mlir] address post-commit review for D127724- make transform.alternatives op apply only to isolated-from-above payload IR scopes;- fix potential leak;- fix several typos.
[mlir] Introduce transform.alternatives opIntroduce a transform dialect op that allows one to attempt differenttransformation sequences on the same piece of payload IR until one of themsucceeds.
[mlir] Introduce transform.alternatives opIntroduce a transform dialect op that allows one to attempt differenttransformation sequences on the same piece of payload IR until one of themsucceeds. This op fundamentally expands the scope of possibilities in thetransform dialect that, until now, could only propagate transformation failure,at least using in-tree operations. This requires a more detailed specificationof the execution model for the transform dialect that now indicates how failureis handled and propagated.Transformations described by transform operations now have tri-state results,with some errors being fundamentally irrecoverable (e.g., generating malformedIR) and some others being recoverable by containing ops. Existing transform opsdirectly implementing the `apply` interface method are updated to produce thisdirectly. Transform ops with the `TransformEachTransformOpTrait` are currentlyconsidered to produce only irrecoverable failures and will be updatedseparately.Reviewed By: springermDifferential Revision: https://reviews.llvm.org/D127724
[mlir] (NFC) Clean up bazel and CMake target namesAll dialect targets in bazel have been named *Dialect and all dialecttargets in CMake have been named MLIR*Dialect.
[mlir] Fix ClangTidyPerformance finding (NFC).
[mlir] Introduce Transform ops for loopsIntroduce transform ops for "for" loops, in particular for peeling, softwarepipelining and unrolling, along with a couple of "IR navigation" ops. These ops
[mlir] Introduce Transform ops for loopsIntroduce transform ops for "for" loops, in particular for peeling, softwarepipelining and unrolling, along with a couple of "IR navigation" ops. These opsare intended to be generalized to different kinds of loops when possible andtherefore use the "loop" prefix. They currently live in the SCF dialect asthere is no clear place to put transform ops that may span across severaldialects, this decision is postponed until the ops actually need to handlenon-SCF loops.Additionally refactor some common utilities for transform ops into trait orinterface methods, and change the loop pipelining to be a returning pattern.Reviewed By: springermDifferential Revision: https://reviews.llvm.org/D127300