v0.24.0
github-actions
released this
28 Nov 17:04
·
125 commits
to refs/heads/main
since this release
xDSL framework
- core: Add results directive @alexarice (#3518)
- core: Add operands directive @alexarice (#3507)
- core: Move assembly format type parsing to directives @alexarice (#3516)
- core: Remove ParsingContext @alexarice (#3524)
- core: Walk regions for rewritings instead of ops @math-fehr (#3506)
- core: introduce TypedAttributeConstraint @alexarice (#3318)
- dialects: (builtin) make DenseIntOrFPElementsAttr a TypedAttribute @alexarice (#3509)
- core: add get_type helper to TypedAttribute @alexarice (#3508)
- core: remove generic and generic check from TypedAttribute @alexarice (#3504)
- core: refactor assembly format directives @alexarice (#3501)
- core: make BaseAttr inferrable @alexarice (#3491)
- core: make TypedAttribute printing generic @alexarice (#3490)
- core: simplify TypedAttribute @alexarice (#3487)
- core: new inference system for constraints @alexarice (#3456)
- core: (irdl) ParamAttrConstraint can infer recursively @superlopuh (#3477)
- core: use & for AllOf constraint @alexarice (#3441)
- rewriting: add attr_constr_rewrite_pattern @superlopuh (#3439)
- misc: raise error if variadic results types aren't referenced in assembly format @superlopuh (#3416)
- core: Parse FloatAttr from hexadecimal bit representation @n-io (#3378)
- core: Print FloatAttr special values @n-io (#3377)
- core: Print fp literals losslessly @n-io (#3381)
- core: (HasParent) allow no parent for testing @alexarice (#3323)
- core: always print unregistered ops @alexarice (#3303)
- core: relax some types in range variable solving @alexarice (#3317)
- core: default props should always be added @alexarice (#3308)
- core: Add default valued attributes @alexarice (#3305)
- core: Implement RangeVarConstraint @alexarice (#3261)
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
toptr
dialect @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
- transformations: (convert-riscv-to-llvm) @jorendumoulin (#2468)
- transformations:
ptr
->riscv
conversion @mamanain (#3393) - backend: (riscv) remove optimization level from test-lower-linalg-to-snitch @superlopuh (#3385)
- fix: (csl) Print float zero as
0.0
, not0
@dk949 (#3339) - dialects: (csl) Add ptrcast op @n-io (#3313)
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
- API: add
Op
suffix to all operations in xDSL @superlopuh (#3522) - API: add InferenceContext @superlopuh (#3500)
- API: add back traits_def, and also lazy_traits_def @superlopuh (#3382)
- API: use OpTraits to define traits on operations @superlopuh (#3363)
- api: constr helpers for generic attributes now mostly static methods @superlopuh (#3287)
🐛 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
- CI: test 3.13 on the CI @superlopuh (#3346)
Installation
- pip prod(deps): bump marimo from 0.9.26 to 0.9.27 @dependabot (#3532)
- pip prod(deps): bump marimo from 0.9.23 to 0.9.26 @dependabot (#3523)
- pip prod(deps): bump wgpu from 0.19.1 to 0.19.2 @dependabot (#3519)
- installation: (nix) Update flake and remove ruff @alexarice (#3514)
- pip prod(deps): bump marimo from 0.9.21 to 0.9.23 @dependabot (#3512)
- pip prod(deps): bump ruff from 0.7.4 to 0.8.0 @dependabot (#3513)
- pip prod(deps): bump textual from 0.86.3 to 0.87.1 @dependabot (#3511)
- pip prod(deps): bump marimo from 0.9.20 to 0.9.21 @dependabot (#3502)
- pip prod(deps): bump textual from 0.86.2 to 0.86.3 @dependabot (#3482)
- pip prod(deps): bump wgpu from 0.19.0 to 0.19.1 @dependabot (#3481)
- pip prod(deps): bump textual-dev from 1.6.1 to 1.7.0 @dependabot (#3468)
- pip prod(deps): bump textual from 0.86.1 to 0.86.2 @dependabot (#3469)
- pip prod(deps): update immutabledict requirement from <4.2.1 to <4.2.2 @dependabot (#3460)
- pip prod(deps): bump marimo from 0.9.19 to 0.9.20 @dependabot (#3461)
- pip prod(deps): bump ruff from 0.7.3 to 0.7.4 @dependabot (#3459)
- pip prod(deps): bump textual from 0.85.2 to 0.86.1 @dependabot (#3458)
- pip prod(deps): bump marimo from 0.9.18 to 0.9.19 @dependabot (#3454)
- pip prod(deps): bump pyright from 1.1.388 to 1.1.389 @dependabot (#3446)
- pip prod(deps): bump marimo from 0.9.17 to 0.9.18 @dependabot (#3447)
- pip prod(deps): bump marimo from 0.9.16 to 0.9.17 @dependabot (#3419)
- pip prod(deps): bump ruff from 0.7.2 to 0.7.3 @dependabot (#3418)
- pip prod(deps): bump marimo from 0.9.15 to 0.9.16 @dependabot (#3409)
- pip prod(deps): bump pyright from 1.1.387 to 1.1.388 @dependabot (#3406)
- pip prod(deps): bump marimo from 0.9.14 to 0.9.15 @dependabot (#3404)
- pip prod(deps): bump wgpu from 0.18.1 to 0.19.0 @dependabot (#3401)
- pip prod(deps): bump textual from 0.85.1 to 0.85.2 @dependabot (#3386)
- pip prod(deps): bump numpy from 2.1.2 to 2.1.3 @dependabot (#3388)
- pip prod(deps): bump ruff from 0.7.1 to 0.7.2 @dependabot (#3387)
- pip prod(deps): bump pyright from 1.1.386 to 1.1.387 @dependabot (#3366)
- pip prod(deps): bump textual from 0.84.0 to 0.85.1 @dependabot (#3348)
- pip prod(deps): bump ruff from 0.7.0 to 0.7.1 @dependabot (#3340)
- pip prod(deps): bump pyright from 1.1.385 to 1.1.386 @dependabot (#3336)
- pip prod(deps): bump marimo from 0.9.12 to 0.9.14 @dependabot (#3335)
- pip prod(deps): bump textual from 0.83.0 to 0.84.0 @dependabot (#3333)
- pip prod(deps): bump marimo from 0.9.11 to 0.9.12 @dependabot (#3331)
- pip prod(deps): bump jax from 0.4.34 to 0.4.35 @dependabot (#3332)
- pip prod(deps): bump marimo from 0.9.10 to 0.9.11 @dependabot (#3328)
- pip prod(deps): bump ruff from 0.6.9 to 0.7.0 @dependabot (#3321)
- pip prod(deps): bump pyright from 1.1.384 to 1.1.385 @dependabot (#3314)
- pip prod(deps): bump marimo from 0.9.9 to 0.9.10 @dependabot (#3306)
- pip prod(deps): bump marimo from 0.9.6 to 0.9.9 @dependabot (#3295)
Miscellaneous
- misc: add test to check for Op suffix in operation class names @superlopuh (#3526)
- core: Remove ParsingContext @alexarice (#3524)
- misc: use nullable getters in ConstraintContext @superlopuh (#3503)
- core: add get_type helper to TypedAttribute @alexarice (#3508)
- misc: add get helper to ScopedDict @superlopuh (#3499)
- misc: split dialects.utils into multiple files @superlopuh (#3472)
- core: simplify TypedAttribute @alexarice (#3487)
- misc: Stencil and csl lowering fixes @n-io (#3442)
- core: use & for AllOf constraint @alexarice (#3441)
- misc: cleanup leftover ConstraintVar @alexarice (#3437)
- misc: replace return_op_like format helpers with assembly_format @superlopuh (#3438)
- misc: use assert_never to enforce exhaustive matches @superlopuh (#3430)
- misc: use preferred style for pytest parametrized tests @superlopuh (#3431)
- testing: add one more op to eqsat-create-eclasses test @superlopuh (#3427)
- misc: clean up passes getters [NFC] @superlopuh (#3426)
- dialects: (scf) add assembly format to
scf.condition
@superlopuh (#3413) - misc: make FormatProgram truly frozen @superlopuh (#3414)
- misc: remove casts in assembly format implementation [NFC] @superlopuh (#3425)
- misc: raise error if variadic results types aren't referenced in assembly format @superlopuh (#3416)
- transformations: Add further csl name hints @n-io (#3399)
- transformations: Support declarations in func persist arg names @n-io (#3397)
- misc: reorder imports in
tests/interactive/test_app.py
@alexarice (#3398) - misc: move pdl, sgpu, and wgsl_printer out of experimental @superlopuh (#3384)
- misc: fix tests that secretly rely on optional dependencies @superlopuh (#3361)
- canonicalisation: (arith) Zero division result fix @n-io (#3376)
- misc: move
get_all_passes
to xdsl.transforms @alexarice (#3371) - misc: add a ScopedDict util, similar to LLVM's ScopedHashTable @superlopuh (#3355)
- transformations: (lower-csl-wrapper) Add params_as_consts flag @n-io (#3324)
- dialects: remove some stencil dead code. @PapyChacal (#3055)
- fix: (csl) Print float zero as
0.0
, not0
@dk949 (#3339) - transformations: (memref-to-dsd) Support memref.load ops @n-io (#3338)
- transformations: (arith-to-varith) Support more cases @n-io (#3330)
- dialects: (csl-stencil) Add coefficients to apply op @n-io (#3320)
- Update mlir to d401987fe349a87c53fe25829215b080b70c0c1a @alexarice (#3310)
- misc: remove type annotations from VarConstraint ClassVars @superlopuh (#3326)
- transformation: (convert-varith-to-arith) Minor fix to filecheck @n-io (#3329)
- transformations: (lower-csl-stencil) Add iter args to first region @n-io (#3304)
Interactive
- interactive: refactor to one use of get_all_passes/get_all_dialects @alexarice (#3379)