File tree Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change 2
2
3
3
Ivan Butygin, Renato Golin
4
4
5
+ ## Summary
6
+
7
+ We propose a new API to build a dependencies-based graph of pass pipelines.
8
+
5
9
## Motivation
6
10
7
- TBD use cases from IREE, TPP
11
+ At this point MLIR pass infrastruture only allows to define a linear sequence of passes. While this approach works
12
+ for simple cases, more complex compiler pipelines may require more control over passes execution order.
13
+
14
+ Two main usecases we are considering:
15
+ * Extensibility. We want to have the abilty for users to extend existing pipeline by inserting theirs custom passes
16
+ into various places while reusing most of the exiting pipeline. With current approach the most common way way to achieve this is
17
+ for pipeline developer to add a fixed 'extension point' during initial pipeline design.
18
+ * Dynamic pipeline control flow. It's often required to have an ability select specific sequence of passes based on some info which
19
+ is only becomes available durin compilation process. It can be either branching to some separate sequnces of passes based on selected codegen path
20
+ or running sequence of passes in the loop until some runtime condition is reached.
8
21
9
22
## Proposal
10
23
11
- We propose a new API to build a dependencies-based graph of pass pipelines.
12
24
This API also allows a dynamic control flow between pipelines in graph, controlled by passes inside said pipelines.
13
25
14
26
## New APIs
You can’t perform that action at this time.
0 commit comments