Skip to content

Index

transforms

get_all_passes() -> dict[str, Callable[[], type[ModulePass]]]

Return the list of all available passes.

Source code in xdsl/transforms/__init__.py
  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,
    }