6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786 | def get_all_passes() -> dict[str, Callable[[], type[ModulePass]]]:
"""Return the list of all available passes."""
def get_apply_individual_rewrite():
from xdsl.transforms.individual_rewrite import ApplyIndividualRewritePass
return ApplyIndividualRewritePass
def get_apply_eqsat_pdl():
from xdsl.transforms import apply_eqsat_pdl
return apply_eqsat_pdl.ApplyEqsatPDLPass
def get_apply_eqsat_pdl_interp():
from xdsl.transforms import apply_eqsat_pdl_interp
return apply_eqsat_pdl_interp.ApplyEqsatPDLInterpPass
def get_apply_pdl():
from xdsl.transforms import apply_pdl
return apply_pdl.ApplyPDLPass
def get_apply_pdl_interp():
from xdsl.transforms import apply_pdl_interp
return apply_pdl_interp.ApplyPDLInterpPass
def get_arith_add_fastmath():
from xdsl.transforms import arith_add_fastmath
return arith_add_fastmath.AddArithFastMathFlagsPass
def get_canonicalize_dmp():
from xdsl.transforms import canonicalize_dmp
return canonicalize_dmp.CanonicalizeDmpPass
def get_canonicalize():
from xdsl.transforms import canonicalize
return canonicalize.CanonicalizePass
def get_constant_fold_interp():
from xdsl.transforms import constant_fold_interp
return constant_fold_interp.ConstantFoldInterpPass
def get_control_flow_hoist():
from xdsl.transforms import control_flow_hoist
return control_flow_hoist.ControlFlowHoistPass
def get_convert_arith_to_riscv_snitch():
from xdsl.backend.riscv.lowering import convert_arith_to_riscv_snitch
return convert_arith_to_riscv_snitch.ConvertArithToRiscvSnitchPass
def get_convert_arith_to_riscv():
from xdsl.backend.riscv.lowering import convert_arith_to_riscv
return convert_arith_to_riscv.ConvertArithToRiscvPass
def get_convert_arith_to_varith():
from xdsl.transforms import varith_transformations
return varith_transformations.ConvertArithToVarithPass
def get_convert_arith_to_x86():
from xdsl.backend.x86.lowering import convert_arith_to_x86
return convert_arith_to_x86.ConvertArithToX86Pass
def get_convert_func_to_riscv_func():
from xdsl.backend.riscv.lowering import convert_func_to_riscv_func
return convert_func_to_riscv_func.ConvertFuncToRiscvFuncPass
def get_convert_func_to_x86_func():
from xdsl.backend.x86.lowering import convert_func_to_x86_func
return convert_func_to_x86_func.ConvertFuncToX86FuncPass
def get_convert_linalg_to_loops():
from xdsl.transforms import convert_linalg_to_loops
return convert_linalg_to_loops.ConvertLinalgToLoopsPass
def get_convert_linalg_to_memref_stream():
from xdsl.transforms import convert_linalg_to_memref_stream
return convert_linalg_to_memref_stream.ConvertLinalgToMemRefStreamPass
def get_convert_memref_stream_to_loops():
from xdsl.transforms import convert_memref_stream_to_loops
return convert_memref_stream_to_loops.ConvertMemRefStreamToLoopsPass
def get_convert_memref_stream_to_snitch_stream():
from xdsl.transforms import convert_memref_stream_to_snitch_stream
return (
convert_memref_stream_to_snitch_stream.ConvertMemRefStreamToSnitchStreamPass
)
def get_convert_memref_to_ptr():
from xdsl.transforms import convert_memref_to_ptr
return convert_memref_to_ptr.ConvertMemRefToPtr
def get_convert_memref_to_riscv():
from xdsl.backend.riscv.lowering import convert_memref_to_riscv
return convert_memref_to_riscv.ConvertMemRefToRiscvPass
def get_convert_ml_program_to_memref():
from xdsl.transforms import convert_ml_program_to_memref
return convert_ml_program_to_memref.ConvertMlProgramToMemRefPass
def get_convert_pdl_interp_to_eqsat_pdl_interp():
from xdsl.transforms import convert_pdl_interp_to_eqsat_pdl_interp
return (
convert_pdl_interp_to_eqsat_pdl_interp.ConvertPDLInterpToEqsatPDLInterpPass
)
def get_convert_pdl_to_pdl_interp():
from xdsl.transforms.convert_pdl_to_pdl_interp import conversion
return conversion.ConvertPDLToPDLInterpPass
def get_convert_print_format_to_riscv_debug():
from xdsl.backend.riscv.lowering import convert_print_format_to_riscv_debug
return convert_print_format_to_riscv_debug.ConvertPrintFormatToRiscvDebugPass
def get_convert_ptr_to_llvm():
from xdsl.transforms import convert_ptr_to_llvm
return convert_ptr_to_llvm.ConvertPtrToLLVMPass
def get_convert_ptr_to_riscv():
from xdsl.transforms import convert_ptr_to_riscv
return convert_ptr_to_riscv.ConvertPtrToRiscvPass
def get_convert_ptr_to_x86():
from xdsl.backend.x86.lowering import convert_ptr_to_x86
return convert_ptr_to_x86.ConvertPtrToX86Pass
def get_convert_ptr_type_offsets():
from xdsl.transforms import convert_ptr_type_offsets
return convert_ptr_type_offsets.ConvertPtrTypeOffsetsPass
def get_convert_riscv_scf_for_to_frep():
from xdsl.transforms import convert_riscv_scf_for_to_frep
return convert_riscv_scf_for_to_frep.ConvertRiscvScfForToFrepPass
def get_convert_riscv_scf_to_riscv_cf():
from xdsl.backend.riscv.lowering import convert_riscv_scf_to_riscv_cf
return convert_riscv_scf_to_riscv_cf.ConvertRiscvScfToRiscvCfPass
def get_convert_riscv_to_llvm():
from xdsl.transforms import convert_riscv_to_llvm
return convert_riscv_to_llvm.ConvertRiscvToLLVMPass
def get_convert_scf_to_cf():
from xdsl.transforms import convert_scf_to_cf
return convert_scf_to_cf.ConvertScfToCf
def get_convert_scf_to_openmp():
from xdsl.transforms import convert_scf_to_openmp
return convert_scf_to_openmp.ConvertScfToOpenMPPass
def get_convert_scf_to_riscv_scf():
from xdsl.backend.riscv.lowering import convert_scf_to_riscv_scf
return convert_scf_to_riscv_scf.ConvertScfToRiscvPass
def get_convert_scf_to_x86_scf():
from xdsl.transforms import convert_scf_to_x86_scf
return convert_scf_to_x86_scf.ConvertScfToX86ScfPass
def get_convert_snitch_stream_to_snitch():
from xdsl.backend.riscv.lowering import convert_snitch_stream_to_snitch
return convert_snitch_stream_to_snitch.ConvertSnitchStreamToSnitch
def get_convert_stencil_to_csl_stencil():
from xdsl.transforms import convert_stencil_to_csl_stencil
return convert_stencil_to_csl_stencil.ConvertStencilToCslStencilPass
def get_convert_stencil_to_ll_mlir():
from xdsl.transforms.experimental import convert_stencil_to_ll_mlir
return convert_stencil_to_ll_mlir.ConvertStencilToLLMLIRPass
def get_convert_varith_to_arith():
from xdsl.transforms import varith_transformations
return varith_transformations.ConvertVarithToArithPass
def get_convert_vector_to_ptr():
from xdsl.transforms import convert_vector_to_ptr
return convert_vector_to_ptr.ConvertVectorToPtrPass
def get_convert_vector_to_x86():
from xdsl.backend.x86.lowering import convert_vector_to_x86
return convert_vector_to_x86.ConvertVectorToX86Pass
def get_convert_x86_scf_to_x86():
from xdsl.transforms import convert_x86_scf_to_x86
return convert_x86_scf_to_x86.ConvertX86ScfToX86Pass
def get_jax_use_donated_arguments():
from xdsl.transforms import jax_use_donated_arguments
return jax_use_donated_arguments.JaxUseDonatedArguments
def get_cse():
from xdsl.transforms import common_subexpression_elimination
return common_subexpression_elimination.CommonSubexpressionElimination
def get_csl_stencil_bufferize():
from xdsl.transforms import csl_stencil_bufferize
return csl_stencil_bufferize.CslStencilBufferize
def get_csl_stencil_handle_async_flow():
from xdsl.transforms import csl_stencil_handle_async_flow
return csl_stencil_handle_async_flow.CslStencilHandleAsyncControlFlow
def get_csl_stencil_materialize_stores():
from xdsl.transforms import csl_stencil_materialize_stores
return csl_stencil_materialize_stores.CslStencilMaterializeStores
def get_csl_stencil_set_global_coeffs():
from xdsl.transforms import csl_stencil_set_global_coeffs
return csl_stencil_set_global_coeffs.CslStencilSetGlobalCoeffs
def get_csl_stencil_to_csl_wrapper():
from xdsl.transforms import csl_stencil_to_csl_wrapper
return csl_stencil_to_csl_wrapper.CslStencilToCslWrapperPass
def get_csl_wrapper_hoist_buffers():
from xdsl.transforms import csl_wrapper_hoist_buffers
return csl_wrapper_hoist_buffers.CslWrapperHoistBuffers
def get_dce():
from xdsl.transforms import dead_code_elimination
return dead_code_elimination.DeadCodeElimination
def get_distribute_stencil():
from xdsl.transforms.experimental.dmp import stencil_global_to_local
return stencil_global_to_local.DistributeStencilPass
def get_dmp_to_mpi():
from xdsl.transforms.experimental.dmp import stencil_global_to_local
return stencil_global_to_local.DmpToMpiPass
def get_empty_tensor_to_alloc_tensor():
from xdsl.transforms import empty_tensor_to_alloc_tensor
return empty_tensor_to_alloc_tensor.EmptyTensorToAllocTensorPass
def get_eqsat_add_costs():
from xdsl.transforms import eqsat_add_costs
return eqsat_add_costs.EqsatAddCostsPass
def get_eqsat_create_eclasses():
from xdsl.transforms import eqsat_create_eclasses
return eqsat_create_eclasses.EqsatCreateEclassesPass
def get_eqsat_create_egraphs():
from xdsl.transforms import eqsat_create_egraphs
return eqsat_create_egraphs.EqsatCreateEgraphsPass
def get_eqsat_serialize_egraph():
from xdsl.transforms import eqsat_serialize_egraph
return eqsat_serialize_egraph.SerializeEGraph
def get_eqsat_extract():
from xdsl.transforms import eqsat_extract
return eqsat_extract.EqsatExtractPass
def get_approximate_math_with_bitcast():
from xdsl.transforms import approximate_math_with_bitcast
return approximate_math_with_bitcast.ApproximateMathWithBitcastPass
def get_frontend_desymrefy():
from xdsl.transforms.desymref import FrontendDesymrefyPass
return FrontendDesymrefyPass
def get_function_constant_pinning():
from xdsl.transforms.experimental import function_constant_pinning
return function_constant_pinning.FunctionConstantPinningPass
def get_function_persist_arg_names():
from xdsl.transforms import function_transformations
return function_transformations.FunctionPersistArgNamesPass
def get_func_to_pdl_rewrite():
from xdsl.transforms.experimental import func_to_pdl_rewrite
return func_to_pdl_rewrite.FuncToPdlRewrite
def get_gpu_map_parallel_loops():
from xdsl.transforms import gpu_map_parallel_loops
return gpu_map_parallel_loops.GpuMapParallelLoopsPass
def get_hls_convert_stencil_to_ll_mlir():
from xdsl.transforms.experimental import hls_convert_stencil_to_ll_mlir
return hls_convert_stencil_to_ll_mlir.HLSConvertStencilToLLMLIRPass
def get_inline_snrt():
from xdsl.transforms import inline_snrt
return inline_snrt.InlineSnrtPass
def get_licm():
from xdsl.transforms import loop_invariant_code_motion
return loop_invariant_code_motion.LoopInvariantCodeMotionPass
def get_lift_arith_to_linalg():
from xdsl.transforms.lift_arith_to_linalg import LiftArithToLinalg
return LiftArithToLinalg
def get_linalg_fuse_multiply_add():
from xdsl.transforms.linalg_transformations import LinalgFuseMultiplyAddPass
return LinalgFuseMultiplyAddPass
def get_linalg_to_csl():
from xdsl.transforms.linalg_to_csl import LinalgToCsl
return LinalgToCsl
def get_loop_hoist_memref():
from xdsl.transforms import loop_hoist_memref
return loop_hoist_memref.LoopHoistMemRefPass
def get_lower_affine():
from xdsl.transforms import lower_affine
return lower_affine.LowerAffinePass
def get_lower_csl_stencil():
from xdsl.transforms import lower_csl_stencil
return lower_csl_stencil.LowerCslStencil
def get_lower_csl_wrapper():
from xdsl.transforms import lower_csl_wrapper
return lower_csl_wrapper.LowerCslWrapperPass
def get_lower_hls():
from xdsl.transforms.experimental import lower_hls
return lower_hls.LowerHLSPass
def get_lower_mpi():
from xdsl.transforms import lower_mpi
return lower_mpi.LowerMPIPass
def get_lower_riscv_func():
from xdsl.transforms import lower_riscv_func
return lower_riscv_func.LowerRISCVFunc
def get_lower_riscv_scf_to_labels():
from xdsl.backend.riscv import riscv_scf_to_asm
return riscv_scf_to_asm.LowerRiscvScfForToLabelsPass
def get_lower_snitch():
from xdsl.transforms import lower_snitch
return lower_snitch.LowerSnitchPass
def get_memref_stream_fold_fill():
from xdsl.transforms import memref_stream_fold_fill
return memref_stream_fold_fill.MemRefStreamFoldFillPass
def get_memref_stream_generalize_fill():
from xdsl.transforms import memref_stream_generalize_fill
return memref_stream_generalize_fill.MemRefStreamGeneralizeFillPass
def get_memref_stream_infer_fill():
from xdsl.transforms import memref_stream_infer_fill
return memref_stream_infer_fill.MemRefStreamInferFillPass
def get_memref_stream_interleave():
from xdsl.transforms import memref_stream_interleave
return memref_stream_interleave.MemRefStreamInterleavePass
def get_memref_stream_legalize():
from xdsl.transforms import memref_stream_legalize
return memref_stream_legalize.MemRefStreamLegalizePass
def get_memref_stream_tile_outer_loops():
from xdsl.transforms import memref_stream_tile_outer_loops
return memref_stream_tile_outer_loops.MemRefStreamTileOuterLoopsPass
def get_memref_stream_unnest_out_parameters():
from xdsl.transforms import memref_stream_unnest_out_parameters
return memref_stream_unnest_out_parameters.MemRefStreamUnnestOutParametersPass
def get_memref_streamify():
from xdsl.transforms import memref_streamify
return memref_streamify.MemRefStreamifyPass
def get_memref_to_dsd():
from xdsl.transforms import memref_to_dsd
return memref_to_dsd.MemRefToDsdPass
def get_memref_to_gpu():
from xdsl.transforms import gpu_allocs
return gpu_allocs.MemRefToGPUPass
def get_mlir_opt():
from xdsl.transforms import mlir_opt
return mlir_opt.MLIROptPass
def get_printf_to_llvm():
from xdsl.transforms import printf_to_llvm
return printf_to_llvm.PrintfToLLVM
def get_printf_to_putchar():
from xdsl.transforms import printf_to_putchar
return printf_to_putchar.PrintfToPutcharPass
def get_reconcile_unrealized_casts():
from xdsl.transforms import reconcile_unrealized_casts
return reconcile_unrealized_casts.ReconcileUnrealizedCastsPass
def get_replace_incompatible_fpga():
from xdsl.transforms.experimental import replace_incompatible_fpga
return replace_incompatible_fpga.ReplaceIncompatibleFPGA
def get_riscv_allocate_infinite_registers():
from xdsl.transforms import riscv_allocate_infinite_registers
return riscv_allocate_infinite_registers.RISCVAllocateInfiniteRegistersPass
def get_riscv_allocate_registers():
from xdsl.transforms import riscv_allocate_registers
return riscv_allocate_registers.RISCVAllocateRegistersPass
def get_riscv_lower_parallel_mov():
from xdsl.transforms import riscv_lower_parallel_mov
return riscv_lower_parallel_mov.RISCVLowerParallelMovPass
def get_riscv_prologue_epilogue_insertion():
from xdsl.backend.riscv import prologue_epilogue_insertion
return prologue_epilogue_insertion.PrologueEpilogueInsertion
def get_riscv_scf_loop_range_folding():
from xdsl.transforms import riscv_scf_loop_range_folding
return riscv_scf_loop_range_folding.RiscvScfLoopRangeFoldingPass
def get_scf_for_loop_flatten():
from xdsl.transforms import scf_for_loop_flatten
return scf_for_loop_flatten.ScfForLoopFlattenPass
def get_scf_for_loop_range_folding():
from xdsl.transforms import scf_for_loop_range_folding
return scf_for_loop_range_folding.ScfForLoopRangeFoldingPass
def get_scf_for_loop_unroll():
from xdsl.transforms import scf_for_loop_unroll
return scf_for_loop_unroll.ScfForLoopUnrollPass
def get_scf_parallel_loop_tiling():
from xdsl.transforms import scf_parallel_loop_tiling
return scf_parallel_loop_tiling.ScfParallelLoopTilingPass
def get_shape_inference():
from xdsl.transforms.shape_inference import ShapeInferencePass
return ShapeInferencePass
def get_snitch_allocate_registers():
from xdsl.transforms import snitch_allocate_registers
return snitch_allocate_registers.SnitchAllocateRegistersPass
def get_stencil_bufferize():
from xdsl.transforms import stencil_bufferize
return stencil_bufferize.StencilBufferize
def get_stencil_inlining():
from xdsl.transforms import stencil_inlining
return stencil_inlining.StencilInliningPass
def get_stencil_shape_minimize():
from xdsl.transforms import stencil_shape_minimize
return stencil_shape_minimize.StencilShapeMinimize
def get_stencil_storage_materialization():
from xdsl.transforms.experimental import stencil_storage_materialization
return stencil_storage_materialization.StencilStorageMaterializationPass
def get_stencil_tensorize_z_dimension():
from xdsl.transforms.experimental import stencil_tensorize_z_dimension
return stencil_tensorize_z_dimension.StencilTensorizeZDimension
def get_stencil_unroll():
from xdsl.transforms import stencil_unroll
return stencil_unroll.StencilUnrollPass
def get_test_add_timers_to_top_level_funcs():
from xdsl.transforms import function_transformations
return function_transformations.TestAddBenchTimersToTopLevelFunctions
def get_test_constant_folding():
from xdsl.transforms import test_constant_folding
return test_constant_folding.TestConstantFoldingPass
def get_test_lower_linalg_to_snitch():
from xdsl.transforms import test_lower_linalg_to_snitch
return test_lower_linalg_to_snitch.TestLowerLinalgToSnitchPass
def get_test_specialised_constant_folding():
from xdsl.transforms import test_constant_folding
return test_constant_folding.TestSpecialisedConstantFoldingPass
def get_test_transform_dialect_erase_schedule():
from xdsl.transforms import test_transform_dialect_erase_schedule
return (
test_transform_dialect_erase_schedule.TestTransformDialectEraseSchedulePass
)
def get_test_vectorize_matmul():
from xdsl.transforms import test_vectorize_matmul
return test_vectorize_matmul.TestVectorizeMatmulPass
def get_transform_interpreter():
from xdsl.transforms import transform_interpreter
return transform_interpreter.TransformInterpreterPass
def get_varith_fuse_repeated_operands():
from xdsl.transforms import varith_transformations
return varith_transformations.VarithFuseRepeatedOperandsPass
def get_vector_split_load_extract():
from xdsl.transforms import vector_split_load_extract
return vector_split_load_extract.VectorSplitLoadExtractPass
def get_x86_allocate_registers():
from xdsl.transforms import x86_allocate_registers
return x86_allocate_registers.X86AllocateRegisters
def get_x86_prologue_epilogue_insertion():
from xdsl.backend.x86 import prologue_epilogue_insertion
return prologue_epilogue_insertion.X86PrologueEpilogueInsertion
def get_x86_legalize_for_regalloc():
from xdsl.transforms import x86_legalize_for_regalloc
return x86_legalize_for_regalloc.X86LegalizeForRegallocPass
def get_x86_infer_broadcast():
from xdsl.transforms import x86_infer_broadcast
return x86_infer_broadcast.X86InferBroadcast
def get_verify_register_allocation():
from xdsl.transforms import verify_register_allocation
return verify_register_allocation.VerifyRegisterAllocationPass
# Please insert pass and `get_` function in alphabetical order
return {
"apply-individual-rewrite": get_apply_individual_rewrite,
"apply-eqsat-pdl": get_apply_eqsat_pdl,
"apply-eqsat-pdl-interp": get_apply_eqsat_pdl_interp,
"apply-pdl": get_apply_pdl,
"apply-pdl-interp": get_apply_pdl_interp,
"approximate-math-with-bitcast": get_approximate_math_with_bitcast,
"arith-add-fastmath": get_arith_add_fastmath,
"canonicalize-dmp": get_canonicalize_dmp,
"canonicalize": get_canonicalize,
"constant-fold-interp": get_constant_fold_interp,
"control-flow-hoist": get_control_flow_hoist,
"convert-arith-to-riscv-snitch": get_convert_arith_to_riscv_snitch,
"convert-arith-to-riscv": get_convert_arith_to_riscv,
"convert-arith-to-varith": get_convert_arith_to_varith,
"convert-arith-to-x86": get_convert_arith_to_x86,
"convert-func-to-riscv-func": get_convert_func_to_riscv_func,
"convert-func-to-x86-func": get_convert_func_to_x86_func,
"convert-linalg-to-loops": get_convert_linalg_to_loops,
"convert-linalg-to-memref-stream": get_convert_linalg_to_memref_stream,
"convert-memref-stream-to-loops": get_convert_memref_stream_to_loops,
"convert-memref-stream-to-snitch-stream": get_convert_memref_stream_to_snitch_stream,
"convert-memref-to-ptr": get_convert_memref_to_ptr,
"convert-memref-to-riscv": get_convert_memref_to_riscv,
"convert-ml-program-to-memref": get_convert_ml_program_to_memref,
"convert-pdl-interp-to-eqsat-pdl-interp": get_convert_pdl_interp_to_eqsat_pdl_interp,
"convert-pdl-to-pdl-interp": get_convert_pdl_to_pdl_interp,
"convert-print-format-to-riscv-debug": get_convert_print_format_to_riscv_debug,
"convert-ptr-to-llvm": get_convert_ptr_to_llvm,
"convert-ptr-to-riscv": get_convert_ptr_to_riscv,
"convert-ptr-to-x86": get_convert_ptr_to_x86,
"convert-riscv-scf-for-to-frep": get_convert_riscv_scf_for_to_frep,
"convert-riscv-scf-to-riscv-cf": get_convert_riscv_scf_to_riscv_cf,
"convert-riscv-to-llvm": get_convert_riscv_to_llvm,
"convert-scf-to-cf": get_convert_scf_to_cf,
"convert-scf-to-openmp": get_convert_scf_to_openmp,
"convert-scf-to-riscv-scf": get_convert_scf_to_riscv_scf,
"convert-scf-to-x86-scf": get_convert_scf_to_x86_scf,
"convert-snitch-stream-to-snitch": get_convert_snitch_stream_to_snitch,
"convert-ptr-type-offsets": get_convert_ptr_type_offsets,
"convert-stencil-to-csl-stencil": get_convert_stencil_to_csl_stencil,
"convert-stencil-to-ll-mlir": get_convert_stencil_to_ll_mlir,
"convert-varith-to-arith": get_convert_varith_to_arith,
"convert-vector-to-ptr": get_convert_vector_to_ptr,
"convert-vector-to-x86": get_convert_vector_to_x86,
"convert-x86-scf-to-x86": get_convert_x86_scf_to_x86,
"jax-use-donated-arguments": get_jax_use_donated_arguments,
"cse": get_cse,
"csl-stencil-bufferize": get_csl_stencil_bufferize,
"csl-stencil-handle-async-flow": get_csl_stencil_handle_async_flow,
"csl-stencil-materialize-stores": get_csl_stencil_materialize_stores,
"csl-stencil-set-global-coeffs": get_csl_stencil_set_global_coeffs,
"csl-stencil-to-csl-wrapper": get_csl_stencil_to_csl_wrapper,
"csl-wrapper-hoist-buffers": get_csl_wrapper_hoist_buffers,
"dce": get_dce,
"distribute-stencil": get_distribute_stencil,
"dmp-to-mpi": get_dmp_to_mpi,
"empty-tensor-to-alloc-tensor": get_empty_tensor_to_alloc_tensor,
"eqsat-add-costs": get_eqsat_add_costs,
"eqsat-create-eclasses": get_eqsat_create_eclasses,
"eqsat-create-egraphs": get_eqsat_create_egraphs,
"eqsat-serialize-egraph": get_eqsat_serialize_egraph,
"eqsat-extract": get_eqsat_extract,
"frontend-desymrefy": get_frontend_desymrefy,
"function-constant-pinning": get_function_constant_pinning,
"function-persist-arg-names": get_function_persist_arg_names,
"func-to-pdl-rewrite": get_func_to_pdl_rewrite,
"gpu-map-parallel-loops": get_gpu_map_parallel_loops,
"hls-convert-stencil-to-ll-mlir": get_hls_convert_stencil_to_ll_mlir,
"inline-snrt": get_inline_snrt,
"licm": get_licm,
"lift-arith-to-linalg": get_lift_arith_to_linalg,
"linalg-fuse-multiply-add": get_linalg_fuse_multiply_add,
"linalg-to-csl": get_linalg_to_csl,
"loop-hoist-memref": get_loop_hoist_memref,
"lower-affine": get_lower_affine,
"lower-csl-stencil": get_lower_csl_stencil,
"lower-csl-wrapper": get_lower_csl_wrapper,
"lower-hls": get_lower_hls,
"lower-mpi": get_lower_mpi,
"lower-riscv-func": get_lower_riscv_func,
"lower-riscv-scf-to-labels": get_lower_riscv_scf_to_labels,
"lower-snitch": get_lower_snitch,
"memref-stream-fold-fill": get_memref_stream_fold_fill,
"memref-stream-generalize-fill": get_memref_stream_generalize_fill,
"memref-stream-infer-fill": get_memref_stream_infer_fill,
"memref-stream-interleave": get_memref_stream_interleave,
"memref-stream-legalize": get_memref_stream_legalize,
"memref-stream-tile-outer-loops": get_memref_stream_tile_outer_loops,
"memref-stream-unnest-out-parameters": get_memref_stream_unnest_out_parameters,
"memref-streamify": get_memref_streamify,
"memref-to-dsd": get_memref_to_dsd,
"memref-to-gpu": get_memref_to_gpu,
"mlir-opt": get_mlir_opt,
"printf-to-llvm": get_printf_to_llvm,
"printf-to-putchar": get_printf_to_putchar,
"reconcile-unrealized-casts": get_reconcile_unrealized_casts,
"replace-incompatible-fpga": get_replace_incompatible_fpga,
"riscv-allocate-infinite-registers": get_riscv_allocate_infinite_registers,
"riscv-allocate-registers": get_riscv_allocate_registers,
"riscv-lower-parallel-mov": get_riscv_lower_parallel_mov,
"riscv-prologue-epilogue-insertion": get_riscv_prologue_epilogue_insertion,
"riscv-scf-loop-range-folding": get_riscv_scf_loop_range_folding,
"scf-for-loop-flatten": get_scf_for_loop_flatten,
"scf-for-loop-range-folding": get_scf_for_loop_range_folding,
"scf-for-loop-unroll": get_scf_for_loop_unroll,
"scf-parallel-loop-tiling": get_scf_parallel_loop_tiling,
"shape-inference": get_shape_inference,
"snitch-allocate-registers": get_snitch_allocate_registers,
"stencil-bufferize": get_stencil_bufferize,
"stencil-inlining": get_stencil_inlining,
"stencil-shape-minimize": get_stencil_shape_minimize,
"stencil-storage-materialization": get_stencil_storage_materialization,
"stencil-tensorize-z-dimension": get_stencil_tensorize_z_dimension,
"stencil-unroll": get_stencil_unroll,
"test-add-timers-to-top-level-funcs": get_test_add_timers_to_top_level_funcs,
"test-constant-folding": get_test_constant_folding,
"test-lower-linalg-to-snitch": get_test_lower_linalg_to_snitch,
"test-specialised-constant-folding": get_test_specialised_constant_folding,
"test-transform-dialect-erase-schedule": get_test_transform_dialect_erase_schedule,
"test-vectorize-matmul": get_test_vectorize_matmul,
"transform-interpreter": get_transform_interpreter,
"varith-fuse-repeated-operands": get_varith_fuse_repeated_operands,
"vector-split-load-extract": get_vector_split_load_extract,
"x86-allocate-registers": get_x86_allocate_registers,
"x86-prologue-epilogue-insertion": get_x86_prologue_epilogue_insertion,
"x86-legalize-for-regalloc": get_x86_legalize_for_regalloc,
"x86-infer-broadcast": get_x86_infer_broadcast,
"verify-register-allocation": get_verify_register_allocation,
}
|