Skip to content

Releases: xdslproject/xdsl

v0.43.0

29 Jun 14:15
c81fea8
Compare
Choose a tag to compare

Another busy week.

Important changes:

  • The Printer.print function is deprecated, please use the typed alternatives instead.
  • The AnyOf constraint now requires that each case constraint is satisfied a unique attribute class (unique base)
  • Added many typed inits to the framework, in the next release these will be generated automatically by the decorator

Changes

  • tools: move catching verification and parsing errors from CommandLineTool to xDSLOptMain @compor (#3915)
  • dialects: (llvm) only add var_callee_type if call is variadic @erick-xanadu (#4654)
  • core: (Printer) deprecate Printer.print @alexarice (#4604)

xDSL framework

Dialects

Transformations

  • transformations: use DenseArrayBase when lowering memref to riscv @superlopuh (#4608)

Backend

  • backend: (x86) ptr.load double-precision to x86 instructions @qaco (#4669)
  • backend: (x86) double-precision pointer load @qaco (#4667)
  • backend: closed set of allocatable registers @superlopuh (#4633)
  • backend: (x86) convert arith.constant to x86 instructions @qaco (#4647)
  • backend: (x86) convert arith.muli to x86 instructions @qaco (#4638)
  • backend: (x86) non-vector ptr.store to x86 instructions @qaco (#4636)
  • backend: (x86) convert arith.addi to x86 instructions @qaco (#4612)
  • backend: (x86) non-vector ptr.load to x86 instructions @qaco (#4613)
  • backend: add RegisterType.allocatable_registers @superlopuh (#4621)

Interpreter

  • interpreter: (pdl_interp) switch_attribute, create_type, and create_types @jumerckx (#4642)
  • interpreter: (pdl_interp) check_type @jumerckx (#4634)
  • interpreter: (pdl_interp) Consistent naming for interpreter methods @jumerckx (#4616)

🗎 Documentation

Testing

Continuous Integration

Installation

Miscellaneous

v0.42.0

20 Jun 21:42
1c9c029
Compare
Choose a tag to compare

This release fixes tuple type printing and parsing, and contains a number of minor performance improvements.
We have begun to slowly move away from the Printer.print function, reducing its uses, and will deprecate it in an upcoming release.

This update changes the mlir-opt version xDSL depends on to the one shipped with LLVM 20.1.7.

Changes

xDSL framework

Dialects

Transformations

  • transformations: (eqsat) Delete pdl-based eqsat in favor of pdl_interp @jumerckx (#4494)
  • transformations: (eqsat) Add apply-eqsat-pdl-interp pass @jumerckx (#4493)
  • transformations: (riscv) Add canonicalization pattern x*1->x @zykdtc (#4535)

Interpreter

  • interpreter: (eqsat) run_replace and apply_matches @jumerckx (#4532)

Testing

Installation

Miscellaneous

v0.41.0

14 Jun 07:12
7ca79d6
Compare
Choose a tag to compare

Biggest change is that we can now print and parse dialect resources, as long as they're in the same .mlir file.

Changes

xDSL framework

Dialects

Interpreter

  • interpreter: (eqsat) Interpret for CreateOperationOp @jumerckx (#4517)
  • interpreter: (eqsat) Add backtracking mechanism for GetDefiningOp @jumerckx (#4516)
  • interpreter: (eqsat) Fix and make error in handling in get_result(s) more consistent @jumerckx (#4527)

Testing

Installation

Miscellaneous

v0.40.0

09 Jun 15:58
a5e27c1
Compare
Choose a tag to compare

This release adds TypeVarConstraint, a way to bridge Python's type variables to constraints in xDSL. Most users of xDSL won't need to use this, but advanced users of custom constraints are invited to take a look at the documentation.

Changes

xDSL framework

Dialects

  • dialects: (emitc) Add additional invalid emitc array type checks @Jimmy2027 (#4511)
  • dialects: Add bitvector attribute and constant operation @math-fehr (#4482)
  • dialects: (eqsat) Add eqsat egraph and yield operation @jumerckx (#4491)
  • dialects: (fir and hlfir) Updates to dialects based upon new operations and types in FIR and HLFIR to bring up to date @mesham (#4489)
  • dialects: (emitc) add emitc array verify and parsing checks @Jimmy2027 (#4447)
  • dialects: (emitc) Remove duplicated testcase @Jimmy2027 (#4484)

Transformations

  • transformations: shift right by zero canonicalization for RISCV dialect @baymaks (#4501)
  • transformations: (convert-memref-to-ptr) lower static offset @superlopuh (#4426)

Interpreter

Installation

Miscellaneous

v0.39.0

30 May 13:22
a69cfa0
Compare
Choose a tag to compare

Changes

xDSL framework

Dialects

Transformations

  • transformations: (pdl_interp) Refactor PDLInterpRewritePattern @jumerckx (#4458)

Backend

Interpreter

  • interpreter: keep track of scope id instead of count @jumerckx (#4471)

🐛 Bug Fixes

Installation

Miscellaneous

v0.38.1

24 May 18:13
2102a4f
Compare
Choose a tag to compare

A small bug fix release.

v0.38.0

23 May 15:38
cc4566b
Compare
Choose a tag to compare

Another busy week in xDSL land, with a partial port of the smt dialect by @math-fehr, better handling of complex types by @efferifick, a start of a port of the EmitC dialect by @Jimmy2027, and continuing work on making register allocation work on more targets than RISC-V by @superlopuh.

xDSL framework

Dialects

Transformations

  • transformations: (convert-memref-to-ptr) inline offset_calculations helper @superlopuh (#4422)
  • transformations: Loop Invariant Code Motion @RRavikiran66 (#3027)
  • transformations: (convert-vector-to-ptr) cast first then ptr arithmetic @superlopuh (#4403)
  • transformations: (convert-vector-to-ptr) share helper for offset calculations @superlopuh (#4398)
  • transformations: (vector) vector.store to ptr @qaco (#4384)

Backend

Interpreter

  • interpreter: (transform) add semantics for apply_registered_pass @erick-xanadu (#4275)
  • dialects: (pdl_interp) Fix small issues in CreateOperationOp and GetDefiningOp @jumerckx (#4412)
  • dialects: (pdl_interp) add SwitchOperationName @jumerckx (#4413)

🐛 Bug Fixes

  • bug: (x86) cast back the result of an ptr operation after lowering to x86 @qaco (#4419)

Installation

Miscellaneous

v0.37.0

09 May 20:44
5c5ee86
Compare
Choose a tag to compare

Another productive week! There has been some activity making register allocation more general, moving towards allocating registers for x86 and ARM dialects, some equality saturation work, and first steps towards being able to store complex types in dense arrays, as well as some small quality of life improvements in the APIs.

Note that this release removed a number of functions that have been deprecated for over three months, and added some new deprecations.

xDSL framework

Dialects

Transformations

  • transformations: (convert-memref-to-ptr) use to/from ptr ops for casts @superlopuh (#4342)
  • transformations: (convert-ptr-to-llvm) Add conversions for ConvertToPtrOp and ConvertFromPtrOp @kaylendog (#4355)
  • transformations: (pdl_interp) Add pdl-interp-apply pass @jumerckx (#4279)
  • transformations: vector load to ptr @qaco (#4192)
  • transformations: (convert-ptr-to-llvm) Enable recursive type rewriting @kaylendog (#4354)

Backend

  • backend: (riscv) use RegisterAllocationOperation for snitch reserved registers @superlopuh (#4335)
  • backend: add RegisterAllocatableOperation abstract base class @superlopuh (#4318)
  • backend: ptr load to x86 @qaco (#4304)

Interpreter

  • interpreter: (pdl_interp) Change rewriter check in run_create_operation @jumerckx (#4287)

🗎 Documentation

  • documentation: Rename traversal example function to @sum_of_squares for clarity @RepoBirdBot (#4319)

Testing

Installation

Miscellaneous

v0.36.0

02 May 17:29
db9fd03
Compare
Choose a tag to compare

Changes

xDSL framework

  • core: (ParsePropInAttrDict) allow a subset of properties to be parsed in attr-dict @alexarice (#4316)
  • core: (parser) Fix VariadicSuccessorVariable assembly format @jumerckx (#4288)

Dialects

Transformations

  • transformations: (transform) Add initial transform interpreter pass @efferifick (#4289)
  • transformations: (stencil-shape-minimise) Support missing dims @n-io (#4278)
  • transformations: (shape-inference) Support stencil offset_mapping @n-io (#4273)
  • transforms: (linalg-to-csl) Workaround for min @n-io (#4268)
  • transformations: (arith-add-fastmath) Support arith.cmpf @n-io (#4270)
  • transformations: (linalg-to-csl) Translate linalg.max @n-io (#4255)
  • canonicalize: (arith) Fold cmpf and select on same operands @n-io (#4251)

Backend

Interpreter

  • interpreter (transform): add semantics for NamedSequenceOp and YieldOp @erick-xanadu (#4274)
  • interpreter: (pdl_interp) Implement ReplaceOp, FuncOp, RecordMatchOp, and FinalizeOp. @jumerckx (#4258)

Installation

Miscellaneous

  • misc: (eqsat) eqsat-serialize-egraph pass @jumerckx (#4070)
  • transformations: (arith-add-fastmath) Support arith.cmpf @n-io (#4270)
  • minor: (stencil-tensorize) Rewrite using base class @n-io (#4269)

v0.35.0

22 Apr 08:37
aabe840
Compare
Choose a tag to compare

Changes

Dialects

Interpreter

  • interpreter: (pdl_interp) Implement some check* operations @jumerckx (#4257)
  • interpreter: (pdl_interp) Implement some get* and create* operations @jumerckx (#4247)

Continuous Integration

Installation