Skip to content

v0.24.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Nov 17:04
· 125 commits to refs/heads/main since this release
c624080

xDSL framework

Dialects

  • dialects (arm): add return instruction (bx lr) @emmau678 (#3521)
  • dialects (arm): add mul instruction with 2 source registers @emmau678 (#3515)
  • dialects (arm): add mov op @emmau678 (#3476)
  • dialects: (stream) remove stream dialect and move types to memref_stream and snitch @superlopuh (#3510)
  • dialects: (builtin) make DenseIntOrFPElementsAttr a TypedAttribute @alexarice (#3509)
  • dialects: (linalg) linalg.fill attribute positioning @qaco (#3496)
  • dialects: (stream) remove abstract stream read and write operations @superlopuh (#3486)
  • dialects: (stream) use assembly format for stream read and write ops @superlopuh (#3484)
  • dialects: (stream) simplify constr helper on stream attributes @superlopuh (#3494)
  • dialects: (stream) simplify constr helper on stream attributes @superlopuh (#3473)
  • dialects: (builtin) make FloatAttr a TypedAttribute @alexarice (#3488)
  • dialects: (tensor) add insertop and extractop @francescodaghero (#3480)
  • dialects: (bufferization) Simplify tensor/memref constraint @alexarice (#3475)
  • dialects (arm): add first operation @emmau678 (#3462)
  • dialects: (stream) remove unused stream.read and stream.write ops @superlopuh (#3470)
  • dialects (arm): initialise ARM dialect @emmau678 (#3455)
  • dialects: (bufferization) add custom syntax to alloc_tensor @superlopuh (#3451)
  • dialects: (accfg) Update ACCFG dialect to match version in snax-mlir @AntonLydike (#3429)
  • dialects: (stream) add constr to StreamType base class @superlopuh (#3440)
  • dialects: move FastMathFlag and FastMathAttrBase to xdsl.dialects.utils @superlopuh (#3412)
  • dialects: (riscv) split out the base classes for custom format and assembly printing @superlopuh (#3436)
  • dialects: (eqsat) add min_cost_index optional attribute to eclass @superlopuh (#3433)
  • dialects: (eqsat) verify that operands of eclass ops are not produced by eclass @superlopuh (#3432)
  • dialects: (llvm) added disjoint flag @lfrenot (#3428)
  • dialects: (scf) add assembly format to scf.condition @superlopuh (#3413)
  • dialects (scf): Canonicalization for const rehoisting @mamanain (#3421)
  • dialects: (llvm) added overflow flags to trunc @lfrenot (#3422)
  • dialects: (llvm) added the 'nneg' keyword to zext @lfrenot (#3420)
  • dialects: (llvm) changed the exact attribute to a UnitAttr @lfrenot (#3408)
  • dialects: (llvm) added the 'exact' keyword to the corresponding operations @lfrenot (#3390)
  • dialects: (stim) Add parser for .stim formatted strings @kimxworrall (#3122)
  • dialects: llvm fixed parsing of nested structs @watermelonwolverine (#3369)
  • dialects: (llvm) fixed generic printing of llvm.icmp @lfrenot (#3375)
  • dialects: (llvm) Registering llvm.icmp @lfrenot (#3356)
  • dialects: (arith) select canonicalization patterns @alexarice (#3368)
  • dialects: (pdl) Filecheck test documenting how to match an MLIR operation without return type @qaco (#3358)
  • dialects: (llvm) Added pretty printing to llvm.mlir.constant @lfrenot (#3352)
  • dialects: (varith) fix switch parsing @alexarice (#3351)
  • dialects: (varith) add switch @alexarice (#3342)
  • dialects: remove some stencil dead code. @PapyChacal (#3055)
  • dialects: (llvm) Add the integer converstion operations @lfrenot (#3337)
  • Arith to riscv lowering fastmath cmpf @knickish (#3277)
  • dialects: (csl-stencil) Add coefficients to apply op @n-io (#3320)
  • Update mlir to d401987fe349a87c53fe25829215b080b70c0c1a @alexarice (#3310)
  • dialects: (arith) fix attribute dictionary printing and parsing @superlopuh (#3327)
  • dialects: (csl-stencil) Separate varargs for apply regions @n-io (#3316)
  • transformations: (cf) switch canonicalization @alexarice (#3291)
  • dialects: (bufferization) add materialize_in_destination @mamanain (#3301)
  • transformations: (cf) cf.cond_br truth propagation @alexarice (#3285)
  • transformations: (cf) cf.cond_br identical successors @alexarice (#3284)
  • dialects: (riscv) add fastmath flag to RdRsRs Float Float Int operations @knickish (#3276)
  • dialects: (llvm) Add support for overflow flags @lfrenot (#3293)
  • dialects: (builtin) shape for DenseIntORFPElementsAttr is always known @jorendumoulin (#3534)
  • dialects: (llvm) avoid double whitespace after exact @tobiasgrosser (#3415)
  • dialects: (ptr) Introducing ptr dialect @mamanain (#3380)
  • dialect: (tensor) add CollapseShapeOp @mamanain (#3302)
  • feat: Added verify to the integer conversion operations to follow llvm semantics @lfrenot (#3341)

Transformations

  • bug: (lower-csl-stencil) Zero-out accumulator for full reduction access @n-io (#3520)
  • transformations: port MLIR's empty-tensor-to-alloc-tensor pass @superlopuh (#3453)
  • transformations: add eqsat-extract @superlopuh (#3434)
  • transformations: (convert-riscv-to-llvm) @jorendumoulin (#2468)
  • transforms: add restrict flag to StencilShapeMinimize pass @emmau678 (#3411)
  • transformations: add eqsat-add-costs @cowardsa (#3315)
  • transformations: (pdl) Different type matching between polymorphic and fixed case @qaco (#3405)
  • transformations: (scf) loop range folding @mamanain (#3417)
  • dialects (scf): Canonicalization for const rehoisting @mamanain (#3421)
  • transformations: New test-add-timers-to-top-level-funcs pass @n-io (#3407)
  • transformations: Materialise stores before bufferization @n-io (#3403)
  • transformations: ptr -> riscv conversion @mamanain (#3393)
  • transformations: (pdl) Apply PDL patterns from source @qaco (#3391)
  • transformations: Support declarations in func persist arg names @n-io (#3397)
  • transformations: Persist func arg names as arg_attr @n-io (#3395)
  • transformations: check invalid cases in memref -> ptr conversion @mamanain (#3392)
  • transformations: Convert memref to ptrdialect @mamanain (#3383)
  • transformations: (csl-stencil-bufferize) Reselect linalg outs @n-io (#3373)
  • dialects: (arith) select canonicalization patterns @alexarice (#3368)
  • transformations: (canonicalize) Arith const reassociation @n-io (#3364)
  • transformations: Canonicalizations for arith on float constants @n-io (#3362)
  • transformations: New varith-fuse-repeated-operands pass @n-io (#3357)
  • fix: (csl) Use u32 as the counter in async loops @dk949 (#3353)
  • transformations: (linalg-to-csl) Lower generic to fmac(h|s) @n-io (#3345)
  • transformations: New linalg-fuse-multiply-add pass @n-io (#3347)
  • transformations: (csl-stencil-bufferize) Inject accumulator in all csl-stencil linalg ops @n-io (#3343)
  • transformations: (lower-csl-wrapper) Add params_as_consts flag @n-io (#3324)
  • transformations: (memref-to-dsd) Support memref.load ops @n-io (#3338)
  • transformations: Split varith into neighbour and own data across csl_stencil regions @n-io (#3307)
  • transformations: (arith-to-varith) Support more cases @n-io (#3330)
  • transforms: Add convert-varith-to-arith pass @emmau678 (#3309)
  • transformations: (eqsat) add pass to convert non-eclass functions to eclass @jianyicheng (#3189)
  • transformation: (convert-varith-to-arith) Minor fix to filecheck @n-io (#3329)
  • transformations: Support devito timers in the csl pipeline @n-io (#3312)
  • transformations: (cf) switch canonicalization @alexarice (#3291)
  • transformations: (lower-csl-stencil) Add iter args to first region @n-io (#3304)
  • transformations: (cf) cf.cond_br truth propagation @alexarice (#3285)
  • transformations: (cf) cf.cond_br identical successors @alexarice (#3284)

Backend

Interpreter

  • interpreter: (pdl) add the implementation of type interpretation @qaco (#3498)
  • interpreter: move ptr.py to utils folder @superlopuh (#3471)
  • interpreter: (pdl) add test for attribute matching @superlopuh (#3467)
  • interpreter: (pdl) add test for operation matching @superlopuh (#3466)
  • interpreter: (pdl) add test for result matching @superlopuh (#3465)
  • interpreter: (pdl) fix match_operand matching for already matched value @superlopuh (#3457)
  • transformations: (pdl) Different type matching between polymorphic and fixed case @qaco (#3405)

API

🐛 Bug Fixes

  • bug: (lower-csl-stencil) Zero-out accumulator for full reduction access @n-io (#3520)
  • misc: Stencil and csl lowering fixes @n-io (#3442)
  • transformations: (stencil-tensorize-z-dimension) Minor pipeline fixes @n-io (#3423)
  • bug: Fix cse for FloatData @n-io (#3396)
  • core: Parse FloatAttr from hexadecimal bit representation @n-io (#3378)
  • core: Print FloatAttr special values @n-io (#3377)
  • canonicalisation: (arith) Zero division result fix @n-io (#3376)
  • dialects: (varith) fix switch parsing @alexarice (#3351)
  • dialects: (arith) fix attribute dictionary printing and parsing @superlopuh (#3327)
  • core: always print unregistered ops @alexarice (#3303)
  • core: default props should always be added @alexarice (#3308)
  • transformations: (lower-csl-stencil) Add iter args to first region @n-io (#3304)

Testing

  • testing: update path to wgpu interpreter for pyright exclusion @superlopuh (#3479)
  • testing: move pdl whole rewrite tests from pytest to filecheck @superlopuh (#3435)
  • testing: add one more op to eqsat-create-eclasses test @superlopuh (#3427)
  • testing: use test dialect and custom passes for test_get_all_available_passes @superlopuh (#3410)
  • core: (HasParent) allow no parent for testing @alexarice (#3323)

Continuous Integration

Installation

Miscellaneous

Interactive

  • interactive: refactor to one use of get_all_passes/get_all_dialects @alexarice (#3379)