Skip to content

Releases: xdslproject/xdsl

v0.55.1

14 Nov 17:04
cb41bd5

Choose a tag to compare

Changes

Dialects

Transformations

🗎 Documentation

  • documentation: Changing function fused_multiply_add to multiply_add @Saderfing (#5446)

Testing

Continuous Integration

Miscellaneous

v0.55.0

05 Nov 13:25
95ca0d7

Choose a tag to compare

Updates the version of LLVM and MLIR that xDSL is compatible with to 21.1.4.

Fixes the recursive repr in some IR data structures, please open issues if you'd like to suggest further changes to the way these are printed.

Changes

xDSL framework

Dialects

Transformations

  • transformations: (eqsat-add-costs) implement basic greedy extraction that works with cycles @jumerckx (#5417)
  • transformations: (eqsat-extract) handle recursive e-graphs @superlopuh (#5438)

Backend

🐛 Bug Fixes

Continuous Integration

Installation

v0.54.4

31 Oct 09:50
60674c1

Choose a tag to compare

Fixes some regressions in the Marimo notebooks.

Note: this is the last release before the migration to LLVM 21.

Changes

xDSL framework

Dialects

Backend

🗎 Documentation

  • documentation: use "rs" for rust-like syntax in mlir introduction @superlopuh (#5413)

Installation

v0.54.3

25 Oct 17:06
f942872

Choose a tag to compare

Fixes 3.14 support.

Changes

Installation

v0.54.2

24 Oct 15:02
be61007

Choose a tag to compare

Two important changes in this release: early stages of adding analyses from MLIR by @jumerckx, and removing JAX as an optional dependency.

This release also fixes Python 3.14 compatibility and adds it to our CI.

Changes

xDSL framework

Dialects

Transformations

  • transformations: (apply-eqsat-pdl-interp) add is_not_unsound constraint function @jumerckx (#5390)
  • transformations: (convert-x86-scf-to-x86) copy name hints in lowering @superlopuh (#5394)
  • transformations: (convert_pdl_to_pdl_interp) add _generate_rewriter_for_apply_native_rewrite and _generate_rewriter_for_attribute @jumerckx (#5385)
  • transformations: (convert-pdl-to-pdl-interp) add generate_switch_node @jumerckx (#5375)
  • transformations: (convert-pdl-to-pdl-interp) add generate_matcher @jumerckx (#5374)
  • transformations: (convert-pdl-to-pdl-interp) add generate_bool_node @jumerckx (#5371)
  • transformations: (apply-eqsat-pdl-interp) Support folding @jumerckx (#5340)
  • transformations: (convert-pdl-to-pdl-interp) add get_value_at @jumerckx (#5346)

Interpreter

  • interpreter: (pdl_interp) use interpreter state for PatternRewriter @superlopuh (#5400)
  • interpreter: (pdl_interp) use interpreter state for Context @superlopuh (#5399)

🗎 Documentation

🐛 Bug Fixes

  • dialects: (builtin) Fix printer for FloatData @ed741 (#5389)

Continuous Integration

Installation

Miscellaneous

v0.54.1

12 Oct 19:12
50f0653

Choose a tag to compare

Changes

  • transformations: (convert_pdl_to_pdl_interp) Ensure ConstraintQuestion is hashable @jumerckx (#5314)

xDSL framework

Dialects

Transformations

  • transformations: (convert-pdl-to-pdl-interp) add build_predicate_tree @jumerckx (#5344)
  • transformations: (convert-pdl-to-pdl-interp) add _stable_topological_sort @jumerckx (#5333)
  • transformations: (convert-pdl-to-pdl-interp) Add _optimize_tree and _insert_exit @jumerckx (#5331)
  • transformations: (convert-pdl-to-pdl-interp) _propagate_pattern @jumerckx (#5327)
  • transformations: (convert-pdl-to-pdl-interp) add _create_ordered_predicates @jumerckx (#5326)
  • transformations: (convert-pdl-to-pdl-interp) add PredicateTreeBuilder's _extract_pattern_predicates @jumerckx (#5324)
  • transformations: (convert-pdl-to-pdl-interp) Extract predicates from pattern @jumerckx (#5309)
  • transformations: (convert_pdl_to_pdl_interp) _extract_type_predicates @jumerckx (#5318)
  • transformations: (convert_pdl_to_pdl_interp) PatternAnalyzer detect_roots @jumerckx (#5315)

Interpreter

🗎 Documentation

Installation

Miscellaneous

  • dialects: (pdl) add isNegated property to ApplyNativeConstraintOp @jumerckx (#5308)
  • misc: (DisjointSet) Add rooted_union method to DisjointSet @jumerckx (#5319)

v0.54.0

03 Oct 15:20
d4b6848

Choose a tag to compare

Thanks to the efforts of @jorendumoulin, we now support one abstract Attribute superclass in an AnyOf constraint.

Changes

  • dialects: (builtin) MemReftype layout constraint is MemRefLayoutAttr | NoneAttr @jorendumoulin (#5025)

xDSL framework

Dialects

  • dialects: (pdl_interp) Fix ApplyConstraintOp constructor @jumerckx (#5307)
  • dialects (mesh): Add Recv, Send, Shift ops @jakedves (#5302)
  • dialects (tosa): Update test cases with MLIR-styling and ops (tosa.mul, tosa.matmul) for MLIR 20.1.7 @jakedves (#5301)
  • dialects: (mesh) Broadcast , Gather, Scatter Collective ops @jakedves (#5300)
  • dialects: (mesh) Implement mesh.sharding @jakedves (#5292)
  • dialects: (builtin) remove abstract name from MemRefLayoutAttr @superlopuh (#5295)
  • dialects: (mesh) implement MeshAxesArrayAttr @jakedves (#5294)
  • dialects: remove stablehlo dialect @superlopuh (#5289)

Backend

Installation

Miscellaneous

  • dialects: (pdl_interp) Fix ApplyConstraintOp constructor @jumerckx (#5307)
  • core: (assembly-format) Add optional anchor support for Custom<DynamicIndexList> @jakedves (#5287)

v0.53.0

27 Sep 07:49
0186e47

Choose a tag to compare

Changes

xDSL framework

Dialects

  • dialects: (memref) remove memref.SubviewOp.DYNAMIC_INDEX @superlopuh (#5283)
  • dialects: (memref) add custom format for memref.extract_strided_metadata @superlopuh (#5282)
  • core: Add directive for custom<DimensionList> in assembly format, initialise mesh dialect @jakedves (#5250)
  • dialects: (x86_scf) ForRofOperation: RegisterAllocatableOperation @superlopuh (#5277)
  • dialects: (builtin) Update DYNAMIC_INDEX to match C++ MLIR @jakedves (#5273)
  • dialects: (x86_scf) add x86_scf.for, .rof, and .yield @superlopuh (#5275)
  • dialects: (riscv) add canonicalization pattern x&x->x @khorcarol (#5259)
  • dialects: (x86) make vmovapd not inout @superlopuh (#5266)
  • dialects: (arm) remove AssemblyInstructionArg @superlopuh (#5264)

Transformations

  • transformations: (convert-memref-to-ptr) lower memref.subview @superlopuh (#5284)
  • transformations: (convert-memref-to-ptr) ignore offset when indexing @superlopuh (#4985)
  • transformations: (convert-memref-to-ptr) split get_target_ptr into more helpers @superlopuh (#4984)
  • transformations: (convert-x86-scf-to-x86) add lowering for x86_scf @superlopuh (#5278)
  • transformations: (convert-scf-to-x86-scf) add lowering from scf to x86 @superlopuh (#5279)
  • transformations: (scf-for-loop-unroll) implement full loop unrolling @superlopuh (#5271)

Backend

Interpreter

🐛 Bug Fixes

  • dialects: (builtin) Update DYNAMIC_INDEX to match C++ MLIR @jakedves (#5273)

Continuous Integration

Installation

Miscellaneous

v0.52.0

19 Sep 16:17
6d82940

Choose a tag to compare

Adds two important mechanisms: ConstantLikeInterface, which specifies that an operation is a constant, and ConstantMaterializationInterface, which is a dialect interface to create a constant operation of a given value.

xDSL framework

Dialects

Transformations

  • transformations: RISCVRegisterAllocation -> RISCVAllocateRegisters @superlopuh (#5257)
  • transformations: (convert-pdl-to-pdl-interp) add predicate and position utilities @jumerckx (#5242)
  • transformations: add test-vectorize-matmul @superlopuh (#5000)
  • transformations: (eqsat-add-costs) Support external costs from a JSON file @osmanyasar05 (#5223)
  • transformations: (memref-stream-interleave) parametrize pass for command-line scheduling @superlopuh (#5100)

Backend

🗎 Documentation

Continuous Integration

Installation

Miscellaneous

  • misc: move Generic to be last superclass of class definitions @superlopuh (#5227)

Interactive

  • gui: fix empty line and alignment in gui input text box @dshaaban01 (#5226)
  • gui: expand the root node to show all passes on initialization @dshaaban01 (#5225)

v0.51.0

11 Sep 15:24
35f95f3

Choose a tag to compare

Many changes in this release, most of which are to do with new tutorial notebooks we'll share in an upcoming release.

Some noteable other changes:

  • We added a new API for interfaces, please take a look at HasCanonicalizationPatternsInterface for the new recommended way of registering canonicalization patterns.
  • We made more progress on the emitc dialect.

xDSL framework

Dialects

Transformations

  • transformations: (eqsat-extract) Remove assert for minimal e-node to have a cost @jumerckx (#5121)

Interpreter

API

🗎 Documentation

🐛 Bug Fixes

  • transformations: (lower-csl-wrapper) use single _ in constant name @dk949 (#5145)

Testing

  • testing: use MLIR_ROUNDTRIP to avoid "test" unregistered dialect @superlopuh (#5195)

Installation

Miscellaneous

  • misc: show pipeline pass spec as str @superlopuh (#5178)
  • transformations: (lower-csl-wrapper) use...
Read more