Releases: xdslproject/xdsl
Releases · xdslproject/xdsl
v0.25.0
xDSL framework
- core: allow result variadic inference @alexarice (#3559)
- core: fix bitwidth 0 value range @superlopuh (#3552)
- core: add functional-type directive @alexarice (#3517)
- core: Fix 'parse_single_type' for operands/results directives @alexarice (#3553)
- core: fix (and test) operands/results directives with no variadics @alexarice (#3551)
- core: remove unnecessary whitespace printing in assembly format @alexarice (#3530)
- core: Fix extractor logic for optional and default-valued properties @alexarice (#3525)
Dialects
- dialects: (builtin) normalize signless values on init @superlopuh (#3554)
- dialects: (builtin) use truthiness in of constant IntegerAttr values @superlopuh (#3556)
- dialects: (bufferization) fix materialize_in_destination @alexarice (#3495)
- dialects: (arith) add addi constant propagation @alexarice (#3563)
- dialects: (csl) handle negative-valued task ID representation @superlopuh (#3558)
- dialects: (arith) add Cmpi canonicalization @alexarice (#3564)
- dialects (arm): add func op @emmau678 (#3546)
- dialects: (arith) add muli canonicalization @alexarice (#3557)
- dialects: (builtin) fix true/false printing @superlopuh (#3555)
- dialects: (builtin) move value range helper definitions to utils @superlopuh (#3550)
- dialects: (builtin) don't use data in DenseArrayBase @superlopuh (#3542)
- dialects: (builtin) verify that the elements of dense satisfy type @superlopuh (#3544)
- dialects: (builtin) fixed FixedBitwidthType size calculation @superlopuh (#3543)
- dialects: (builtin) DenseIntOrFPElementsAttr: make data private and use getters instead @jorendumoulin (#3535)
- dialects: (builtin) remove Index support in DenseArrayBase @superlopuh (#3541)
- dialects: (bufferization) add CloneOp @jorendumoulin (#3560)
Transformations
- transformations: (convert-stencil-to-csl-stencil) Support multiple input buffers @n-io (#3575)
- transforms: use rewriter and listener in convert-stencil-to-csl-stencil @math-fehr (#3538)
- transforms: use Rewriter instead of PatternRewriter in mlir-opt @math-fehr (#3537)
Interpreter
- interpreter: (pdl) add an initial version of EqSat PDLMatcher @jianyicheng (#3574)
- interpreters: (irdl) generate better op name @alexarice (#3529)
🗎 Documentation
- documentation: add experimental features flag guide to README @superlopuh (#3567)
🐛 Bug Fixes
- transformations: (convert-stencil-to-csl-stencil) Support multiple input buffers @n-io (#3575)
- interactive: fix dark mode @alexarice (#3582)
- dialects: (bufferization) fix materialize_in_destination @alexarice (#3495)
- bug: add init.py @alexarice (#3568)
- dialects: (csl) handle negative-valued task ID representation @superlopuh (#3558)
- dialects: (builtin) fix true/false printing @superlopuh (#3555)
- core: fix (and test) operands/results directives with no variadics @alexarice (#3551)
- core: Fix extractor logic for optional and default-valued properties @alexarice (#3525)
Continuous Integration
- CI: add "tests" to extraPaths for Pyright to find conftest locally @superlopuh (#3571)
Installation
- pip prod(deps): bump textual from 0.88.1 to 0.89.1 @dependabot (#3578)
- pip prod(deps): bump jax from 0.4.35 to 0.4.36 @dependabot (#3577)
- pip prod(deps): bump marimo from 0.9.30 to 0.9.31 @dependabot (#3579)
- pip prod(deps): bump ruff from 0.8.1 to 0.8.2 @dependabot (#3580)
- pip prod(deps): bump pyright from 1.1.389 to 1.1.390 @dependabot (#3570)
- pip prod(deps): bump marimo from 0.9.28 to 0.9.30 @dependabot (#3565)
- pip prod(deps): bump marimo from 0.9.27 to 0.9.28 @dependabot (#3561)
- pip prod(deps): bump textual from 0.87.1 to 0.88.1 @dependabot (#3549)
- pip prod(deps): bump ruff from 0.8.0 to 0.8.1 @dependabot (#3548)
Miscellaneous
- interactive: fix dark mode @alexarice (#3582)
- misc: use experimental TypeForm feature of Pyright @superlopuh (#3450)
- minor: (csl-wrapper-hoist-buffers) Always use good name hints @n-io (#3562)
- core: Fix 'parse_single_type' for operands/results directives @alexarice (#3553)
- core: fix (and test) operands/results directives with no variadics @alexarice (#3551)
- misc: remove unused name argument from builtin attribute parsing @superlopuh (#3545)
- core: remove unnecessary whitespace printing in assembly format @alexarice (#3530)
- tool: (irdl-to-pyrdl) Generate better class name @alexarice (#3528)
Interactive
- interactive: fix dark mode @alexarice (#3582)
v0.24.0
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 matchi...
v0.23.0
xDSL framework
- transforms: (canonicalize) Add full dce @alexarice (#3267)
- core: Fix parsing for hex denseAttrs @vinayakdsci (#3239)
- core: Block predecessors @alexarice (#3235)
Dialects
- dialects: (llvm) Add support for overflow flags @lfrenot (#3269)
- dialects: (cf) cond_br folding @alexarice (#3283)
- dialects: (arith) split generic binary op definition into specific ones @superlopuh (#3274)
- dialects: (llvm) ArithmeticBinOpBase is always on integers @superlopuh (#3270)
- dialects: (mod_arith) create mod_arith dialect and add initial operation @emmau678 (#3218)
- dialects: (stencil) add StencilType constraints @superlopuh (#3254)
- dialects: (builtin) add AnyMemRefTypeConstr and AnyTensorTypeConstr @superlopuh (#3246)
- dialects: (varith) Add varith (variadic arithmetic) dialect @AntonLydike (#3241)
- dialects: (cf) br folding @alexarice (#3240)
- dialects: (dmp) Emit multiple swaps if halo is larger than core size @AntonLydike (#3238)
- tool: tblgen-to-py script @alexarice (#3210)
- dialects: (stim) Add first annotation op @kimxworrall (#3115)
- dialects: (cf) branch canonicalization. @alexarice (#3234)
- dialects: (cf) Assert canonicalization pattern @alexarice (#3228)
- dialects: (riscv) canonicalization pattern added (x|0=x) @lfrenot (#3230)
- dialects: (stim) add qubit attribute and qubit coordinate attribute @kimxworrall (#3114)
- dialects: (riscv) Add rewrite pattern to optimize bitwise xor by zero @emmau678 (#3197)
- dialects: (tosa) turn attributes into properties @jorendumoulin (#3188)
- dialects: (csl) add
csl.activate
@dk949 (#3191) - fix: various minor fixes for the csl variables @dk949 (#3184)
- dialects: (scf) small refactor for index_switch @alexarice (#3178)
- dialects: (eqsat) add dialect and create new eclass op @superlopuh (#3175)
- dialects: (cf) add switch @alexarice (#3156)
- dialects: (scf) add index_switch @alexarice (#3157)
- dialects: llvm.InLineAsmOp has_side_effects, is_align_stack are properties @JosseVanDelm (#3147)
- dialects: (scf) make iteration variable type explicit @alexarice (#3138)
- dialects: (cf) Custom Parsing and assert change @alexarice (#3132)
- dialects: (csl) Add
direction
type @n-io (#3136) - dialects: (csl) Adds variables to the dialect @dk949 (#3183)
- dialects: (builtin) add i8 default types @jorendumoulin (#3164)
- dialects: (scf) fix
scf.if
printing bug @alexarice (#3160) - dialects (tosa): initialize dialect and add Clamp and Rescale operation @jorendumoulin (#3158)
Transformations
- dialects: (cf) cond_br folding @alexarice (#3283)
- transformations: (lower-csl-stencil) Optimise full-stencil access @n-io (#3271)
- transforms: (cf) fix passthrough operands @alexarice (#3282)
- transformations: (memref-to-dsd) Support pre-existing GetMemDsd ops @n-io (#3279)
- transforms: (canonicalize) Add full dce @alexarice (#3267)
- fix: add extension to filename when calling set_tile_code @dk949 (#3268)
- transforms: (dce) region-level dce @alexarice (#3253)
- transformations: Add convert-arith-to-varith pass @AntonLydike (#3242)
- transforms: (canonicalize) improve dead code elimination @alexarice (#3252)
- dialects: (cf) br folding @alexarice (#3240)
- transformations: (lower-csl-stencil) Promote args before outlining @n-io (#3237)
- transformations: (memref-to-dsd) Handle csl variables @n-io (#3236)
- dialects: (cf) branch canonicalization. @alexarice (#3234)
- dialects: (cf) Assert canonicalization pattern @alexarice (#3228)
- transformations: New stencil-shape-minimize pass @n-io (#3229)
- transformations: New csl-stencil-materialize-stores pass @n-io (#3222)
- transformations: (lower-csl-stencil) Send only core data @n-io (#3223)
- transformations: (licm) add
can_be_hoisted
helper function @RRavikiran66 (#3078) - fix: (csl) adjusted width and height of the PE @dk949 (#3209)
- transformations: Add CSL dsd canonicalisation @n-io (#3208)
- transformations: (scf-to-cf) add lowering for index_switch @alexarice (#3179)
- transformations: (lower-csl-stencil) Store results to apply.dest @n-io (#3203)
- transformations: (csl-stencil-to-csl-wrapper) Add
unblock_cmd_stream
call @n-io (#3198) - transformations: (csl-stencil) Add pass to handle async ops and enclosing cf @n-io (#3192)
- transformation: Scf to cf lowering @alexarice (#3153)
- transformations: Add new csl-wrapper-hoist-buffers pass @n-io (#3165)
- fix: Add the missing call to
@set_rectangle
@dk949 (#3149) - transformations: (csl) add
csl.rpc
op @dk949 (#3143) - transformations: Lower
csl_wrapper.import
tocsl.import
@dk949 (#3137) - transformations: Add pass to lower csl-stencil dialect @n-io (#3134)
- transformations: from
csl_wrapper
tocsl
modules @dk949 (#3107)
Backend
- backend: (csl) Array literals @n-io (#3292)
- backend: (csl) Support zero-stride dsd printing @n-io (#3280)
- backend: (csl) allow
get_dir
to be inlined @dk949 (#3202) - backend: (csl) added arith.select to csl backend @dk949 (#3199)
- backend: (csl) Don't use CSL keywords as var names @dk949 (#3152)
- fix: Minor corrections to the CSL backend @dk949 (#3142)
- backend: (csl) Add comparison operators to CSL @dk949 (#3139)
Interpreter
- interpreter: use interpreter default bitwidth in run main @superlopuh (#3034)
API
- api: add replace_by_if helper to control ssa value replacement @superlopuh (#3196)
🐛 Bug Fixes
- transforms: (cf) fix passthrough operands @alexarice (#3282)
- bug: Tighten type constraints on DenseArrayBase.create_dense_int_or_index @vinayakdsci (#3258)
- transformations: (lower-csl-stencil) Promote args before outlining @n-io (#3237)
- bug: Print csl namehint fix @n-io (#3207)
- bug: (csl-stencil-handle-async-flow) Increment counter correctly @n-io (#3201)
Testing
- transforms: (canonicalize) improve dead code elimination @alexarice (#3252)
- dialects: (cf) br folding @alexarice (#3240)
- core: Block predecessors @alexarice (#3235)
- dialects: (cf) branch canonicalization. @alexarice (#3234)
- dialects: (cf) Assert canonicalization pattern @alexarice (#3228)
- transformations: (scf-to-cf) add lowering for index_switch @alexarice (#3179)
- dialects: (cf) add switch @alexarice (#3156)
- dialects: (scf) add index_switch @alexarice (#3157)
- transformation: Scf to cf lowering @alexarice (#3153)
- dialects: (scf) make iteration variable type explicit @alexarice (#3138)
- dialects: (cf) Custom Parsing and assert change @alexarice (#3132)
Continuous Integration
- Revert "pip prod(deps): bump jax from 0.4.31 to 0.4.32 (#3161)" @superlopuh (#3166)
Installation
- pip prod(deps): bump marimo from 0.9.4 to 0.9.6 @dependabot (#3288)
- pip prod(deps): bump textual from 0.82.0 to 0.83.0 @dependabot (#3289)
- pip prod(deps): bump pyright from 1.1.345 to 1.1.384 @dependabot (#3278)
- pip prod(deps): bump marimo from 0.9.2 to 0.9.4 @dependabot (#3266)
- pip prod(deps): bump pre-commit from 4.0.0 to 4.0.1 @dependabot (#3265)
- pip prod(deps): bump marimo from 0.9.1 to 0.9.2 @dependabot (#3257)
- pip prod(deps): bump ruff from 0.6.8 to 0.6.9 @dependabot (#3256)
- pip prod(deps): bump marimo from 0.9.0 to 0.9.1 @dependabot (#3249)
- pip prod(deps): bump jax from 0.4.33 to 0.4.34 @dependabot (#3250)
- pip prod(deps): bump numpy from 2.1.1 to 2.1.2 @dependabot (#3248)
- pip prod(deps): bump pre-commit from 3.8.0 to 4.0.0 @dependabot (#3251)
- pip prod(deps): bump marimo from 0.8.22 to 0.9.0 @dependabot (#3243)
- pip prod(deps): bump textual from 0.81.0 to 0.82.0 @dependabot (#3244)
- pip prod(deps): bump onnx from 1.16.2 to 1.17.0 @dependabot (#3232)
- pip prod(deps): bump marimo from 0.8.20 to 0.8.22 @dependabot (#3226)
- pip prod(deps): bump ruff from 0.6.5 to 0.6.8 @dependabot (#3219)
- pip prod(deps): bump marimo from 0.8.17 to 0.8.20 @dependabot (#3215)
- pip prod(deps): bump textual from 0.80.0 to 0.81.0 @dependabot (#3217)
- pip prod(deps): bump textual from 0.79.1 to 0.80.0 @dependabot (#3212)
- pip prod(deps): bump marimo from 0.8.15 to 0.8.17 @dependabot (#3193)
- pip prod(deps): bump wgpu from 0.18.0 to 0.18.1 @dependabot (#3187)
- pip prod(deps): bump jax from 0.4.31 to 0.4.33 @dependabot (#3177)
- pip prod(deps): bump wgpu from 0.17.3 to 0.18.0 @dependabot (#3176)
- pip prod(deps): bump marimo from 0.8.14 to 0.8.15 @dependabot (#3168)
- pip prod(deps): bump ruff from 0.6.4 to 0.6.5 @dependabot (#3167)
- pip prod(deps): bump wgpu from 0.16.0 to 0.17.3 @dependabot (#3163)
- pip prod(deps): bump jax from 0.4.31 to 0.4.32 @dependabot (#3161)
- pip prod(deps): bump filecheck from 1.0.0 to 1.0.1 @dependabot (#3150)
- pip prod(deps): bump marimo from 0.8.13 to 0.8.14 @dependabot (#3159)
- pip prod(deps): bump marimo from 0.8.11 to 0.8.13 @dependabot (#3151)
- pip prod(deps): bump ruff from 0.6.3 to 0.6.4 @dependabot (#3148)
- pip prod(deps): bump marimo from 0.8.7 to 0.8.11 @dependabot (#3146)
- pip prod(deps): bump numpy from 2.1.0 to 2.1.1 @dependabot (#3140)
Miscellaneous
- backend: (csl) Array literals @n-io (#3292)
- misc: remove unnecessary pyright ignore comments [NFC] @superlopuh (#3286)
- misc: use VarConstraint instead of Annotated[ConstraintVar] in operation definitions @superlopuh (#3264)
- backend: (csl) Support zero-stride dsd printing @n-io (#3280)
- transformations: (memref-to-dsd) Support pre-existing GetMemDsd ops @n-io (#3279)
- misc: add more .constr helpers and constraints @superlopuh (#3273)
- fix: add extension to filename when calling set_tile_code @dk949 (#3268)
- misc: add pyright ignores for places where it's not going to be happy @superlopuh (#3263)
- misc: miscellaneous linting wrt Pylance @superlopuh (#3262)
- misc: minor linting @superlopuh (#3259)
- transformations: (memref-to-dsd) Handle csl variables @n-io (#3236)
- misc: re-run notebooks with newer version of marimo @superlopuh (#3227)
- transformations: (lower-csl-stencil) Send only core data @n-io (#...
v0.22.0
xDSL framework
- core: Assembly format shouldn't require
$*SegmentSizes
@alexarice (#3123) - core: Add successors to assembly format @alexarice (#3124)
- core: (irdl) Add support for regions in optional groups to declarative assembly format @kimxworrall (#3106)
- core: Implement speculability trait and helper. @PapyChacal (#3102)
- frontend: (stablehlo) add ir generation from jaxpr @shreya-um (#3038)
- core: Implement IRDL SameSize options @PapyChacal (#3067)
- rewriting: Make
modify_block_argument_type
modify_value_type
@PapyChacal (#3045) - transformations: Implement
shape-inference
pass @PapyChacal (#3047) - core: Improved treatment of whitespace in assembly format @alexarice (#3044)
- core: CanonicaliZation naming consistency @PapyChacal (#3040)
- core: helpers for IRDL construct type access. @PapyChacal (#3025)
- core: Implement simple helpers for construct type access. @PapyChacal (#3024)
- core: implement EffectInstance @PapyChacal (#2987)
- (core) Support UnitAttr in assembly format @n-io (#2995)
- core: (irdl) Add regions to declarative assembly format @kimxworrall (#3065)
- core: Add
BitEnumAttribute
@zero9178 (#2617) - core: (affine) override python floordiv symbol @jorendumoulin (#2942)
Dialects
- dialects: (csl) added
csl.addressof_fn
@dk949 (#3135) - dialects: Add NoMemoryEffect trait in various LLVM and builtin ops @JosseVanDelm (#3127)
- dialects: (riscv) canonize x ^ x = 0 @mamanain (#3121)
- dialects: (stim) initialise dialect @kimxworrall (#3042)
- dialects: (stablehlo) add stablehlo.dot @superlopuh (#3090)
- dialects: (stablehlo) add stablehlo.after_all @efferifick (#3104)
- dialects: (stablehlo) add stablehlo.case @efferifick (#3095)
- dialects: (stablehlo) add stablehlo.bitcast_convert @efferifick (#3100)
- dialects: (transform) Fix amount of returned loops in TileOp @JonasCrols (#3080)
- dialects: (stablehlo) add stablehlo.token @efferifick (#3093)
- dialects: (stablehlo) add stablehlo.precision @superlopuh (#3089)
- dialects: (stablehlo) Add support for returnOp @efferifick (#3085)
- dialects: (transform) Add structured match operation @JonasCrols (#3079)
- dialects: (stablehlo) Add support for andOp @efferifick (#3081)
- dialects: stencil: Allow loading and storing from a same field. @PapyChacal (#3071)
- dialects: Update dialects with SameSize IRDL options. @PapyChacal (#3070)
- dialects: Update
tensor
side-effect traits @n-io (#3069) - transformations: Enable dmp.swap stencil bufferization. @PapyChacal (#3066)
- dialects: Update dmp.swap @PapyChacal (#3056)
- transformations: Decouple
distribute-stencil
fromshape-inference
@PapyChacal (#3054) - dialects: dmp: make strategies attributes and carry them in IR @PapyChacal (#3050)
- dialects: (Transform) Add new selecting operations @JonasCrols (#3015)
- dialect: (irdl) Add region and attributes operations @alexarice (#3049)
- dialects: (stablehlo) add transpose @superlopuh (#3031)
- dialects: (irdl) Update for mlir compatibility @alexarice (#3002)
- dialects: (stablehlo) add elementwise add, sub, mul @superlopuh (#3030)
- dialects: (stablehlo) Add initial contribution for stablehlo dialect @efferifick (#3020)
- dialects: (csl_stencil) Enable bufferized
csl_stencil.apply
@n-io (#2994) - dialects: (riscv_snitch) add vfmax.s @superlopuh (#2988)
- dialects: Add stencil features meant for bufferization @PapyChacal (#2985)
- dialects: Enable bufferized stencil.apply @PapyChacal (#2982)
- dialects: (tensor) Incorrect default 'dynamic index' on insert_slice op @n-io (#2974)
- dialects: (arith, core) Constant op to accept tensor and memref @n-io (#2969)
- (bug): linalg named ops to include hidden regions in generic print @n-io (#2957)
- (dialects): improving stencil attr syntax mlir compatibility @n-io (#2947)
- dialects: (scf) Add parse/print to
scf.if
@alexarice (#3126) - dialects: (vector) add pure trait to vector.broadcast and vector.fma @knickish (#3094)
- dialects: (bufferization) Add
to_memref
op @n-io (#2996) - dialects: (linalg) Add Quantized Matmul @JonasCrols (#2999)
- dialects: (stencil) Relax
stencil.return
for tensors @n-io (#2989) - dialects: (transform) Add some transform dialect operations @JonasCrols (#2973)
- dialects: (tensor) add tensor.dim and tensor.cast op @jorendumoulin (#2968)
- dialects: (linalg) add correct generic printing for fill, and matmul @jorendumoulin (#2971)
- transforms: (memref_stream) add missing doc and library call in generic constructors @jorendumoulin (#2941)
Transformations
- transformations: (stencil-tensorize-z-dim) Support loops @n-io (#3118)
- transforms: Fix constant pinning breaking for external functions @AntonLydike (#3131)
- bug: (csl-stencil-to-csl-wrapper) Reverse generated operands @n-io (#3112)
- transformations: (csl-stencil-to-csl-wrapper) Generate symbol export and no memref.globals @n-io (#3101)
- transformations: Translate memref to dsd @n-io (#3092)
- transformations: Support safe inplace stencil bufferization. @PapyChacal (#3077)
- transformations: Implement
control-flow-hoist
@PapyChacal (#3103) - transformations: (csl-stencil-to-csl-wrapper) Support reading properties from bufferized
csl-stencil
@n-io (#3083) - transformations: (csl-stencil-bufferize) Fold
csl_stencil.access
that have no effect @n-io (#3084) - transformations:
stencil-bufferize
side-effect analysis fix @PapyChacal (#3076) - dialects: stencil: Allow loading and storing from a same field. @PapyChacal (#3071)
- transformations: Enable bufferized
dmp.swap
lowering. @PapyChacal (#3073) - transformations: Forgotten xdsl/transforms/shape_inference_patterns/init.py @PapyChacal (#3072)
- transformations: (stencil-to-csl-stencil) Support also bufferized
dmp.swap
@n-io (#3068) - transformations: Enable dmp.swap stencil bufferization. @PapyChacal (#3066)
- transformations: Tensorize new result of
dmp.swap
@n-io (#3063) - dialects: Update dmp.swap @PapyChacal (#3056)
- transformations: Decouple
distribute-stencil
fromshape-inference
@PapyChacal (#3054) - dialects: dmp: make strategies attributes and carry them in IR @PapyChacal (#3050)
- transformations: (csl-stencil-to-csl-wrapper) Translate func args to exportable memref.global @n-io (#3051)
- transformations: update stencil lowering to properly accomodate bufferized stencils. @PapyChacal (#3016)
- transformations: Implement
shape-inference
pass @PapyChacal (#3047) - transformations: stencil shape inference polish @PapyChacal (#3046)
- transformations: stencil bufferization polish @PapyChacal (#3001)
- transformations: Add linalg-to-csl pass @n-io (#3028)
- transformations: (csl-stencil-bufferize) Inject iter_arg into linalg compute @n-io (#3033)
- transformations: (csl_stencil) Add bufferization pass @n-io (#3004)
- transformations: First implementation of stencil-bufferize @PapyChacal (#2983)
- transformations: Enable bufferized stencil lowering. @PapyChacal (#2984)
- transformations: (stencil-tensorize-z-dim) Scaling z-shifts to avoid negative offsets @n-io (#2975)
- transform: (stencil-tensorize-z-dimension) Tensorize arith.constant directly @n-io (#2970)
- transformations: lift arith to linalg named ops @n-io (#2963)
- (transforms): dont have tensor inside memref @n-io (#2962)
- (transform): csl_wrapper program module init @n-io (#2891)
- (transform): csl_stencil canonicalization pass @n-io (#2814)
- transformations: (memref_stream) add memref_stream.generic legalization pass @nazavode (#2929)
Backend
- fix: Param names were not correctly referenced in the printer @dk949 (#3108)
- backend: (riscv) print list of registers to regalloc stats @superlopuh (#3111)
- backend: (JAX) add some syntax sugar for typed compiled functions @superlopuh (#3058)
- backend: (JAX) add export to JAX executable @superlopuh (#3057)
- backend: (riscv) fix register allocation stats @superlopuh (#2961)
- backend: (riscv) add option to insert regalloc stats @superlopuh (#2958)
- backend: (snitch) add an optimization-level option to linalg-snitch pass @superlopuh (#2956)
- backend: (snitch) unify all the test passes as a single end-to-end pass @superlopuh (#2955)
- dialects: (riscv_snitch) lower arith.addf on vector<4xf16> to vfadd.h @nazavode (#2934)
Interpreter
- interpreter: fix int64 format in ptr dtypes @superlopuh (#3035)
API
- api: deprecate
print_string_raw
in favor of indent=0 @superlopuh (#2951) - api: remove parameters field from Trait @superlopuh (#2940)
🗎 Documentation
- docs: (marimo) use carousel in linalg snitch notebook @superlopuh (#2933)
🐛 Bug Fixes
- core: Assembly format shouldn't require
$*SegmentSizes
@alexarice (#3123) - tests: Increase timeout on lit tests @alexarice (#3125)
- bug: remove duplicate isattr definition @superlopuh (#3088)
- transformations:
stencil-bufferize
side-effect analysis fix @PapyChacal (#3076) - dependencies: fix numpy version for subprojects that depend on it @superlopuh (#3062)
- interpreter: fix int64 format in ptr dtypes @superlopuh (#3035)
- bug: (snitch_stream) fix stride pattern repeat param parsing @superlopuh (#2986)
- transformations: (stencil-tensorize-z-dim) Scaling z-shifts to avoid negative offsets @n-io (#2975)
- dialects: (arith, core) Constant op to accept tensor and memref @n-io (#2969)
- backend: (riscv) fix register allocation stats @superlopuh (#2961)
- (bug): linalg named ops to include hidden regions in generic print @n-io (#2957)
- (bug): fix csl_stencil canonicalise @n-io (#2949)
Testing
- tests: Increase timeout on lit tests @alexarice (#3125)
- dialect: (irdl) Add region and attributes operations @alexarice (#3049)
- core: Improved treatment of whitespace in assembly format @alexarice (#3044)
- dialects: (irdl) Update for mlir compatibility @alexarice (#3002)
- misc: Add
Dialect.split_name
method @alexarice (#3003) - testing: add relu f32 to bottom-up tests @SuperLo...
v0.21.1
xDSL framework
- core: clone block argument name hints @superlopuh (#2910)
- core: Implement getAffine for MemrefLayout attributes @jorendumoulin (#2922)
- core: Add FixedbitWidthType Interface @jorendumoulin (#2904)
- core: fix default builtin type definitions @jorendumoulin (#2907)
Dialects
- dialects: (riscv_snitch) add vfmac.s and vfsum.s @superlopuh (#2932)
- dialects: (snitch_stream) add repetition to stride pattern @superlopuh (#2927)
- dialects: (riscv_snitch) add fastmath flags in vector ops @superlopuh (#2913)
- dialects: (Qref) fix bug in cnot initialiser @alexarice (#2899)
- dialects: (memref_stream) add doc and library call support @jorendumoulin (#2928)
Transformations
- (transform, minor): stencil-to-csl-stencil retain interesting compute structure property @n-io (#2926)
- transformations: use block argument types when streamifying @superlopuh (#2920)
- transformations: (snitch) add comments when lowering snitch config ops @superlopuh (#2925)
- transformations: handle packed simd vectors in stream op lowering @superlopuh (#2915)
- transformations: add convert-arith-to-riscv-snitch pass @superlopuh (#2914)
- (transform): csl_stencil erase merged prefetch op @n-io (#2908)
Backend
- backend: add RegisterConstraints and use in riscv backend @superlopuh (#2930)
- backend: (riscv) add allocate_same method to register allocator @superlopuh (#2924)
- backend: (riscv) add a reserve_registers helper to register queue @superlopuh (#2923)
Interpreter
- interpreter: support callable operation impls @superlopuh (#2921)
🗎 Documentation
- docs: (marimo) add interpreter trace to linalg snitch notebook @superlopuh (#2931)
- docs: (marimo) move non-onnx part of notebook to main marimo folder @superlopuh (#2903)
🐛 Bug Fixes
- bug: wrong dataclass imported in stencil_tensorize_z_dimension @superlopuh (#2906)
- bug: ship cmath.irdl file in pypi @superlopuh (#2905)
- dialects: (Qref) fix bug in cnot initialiser @alexarice (#2899)
Testing
- transformations: don't check element type of memref_stream operands @superlopuh (#2916)
- testing: add ssum testcase to bottom-up tests @superlopuh (#2912)
Continuous Integration
- ci: use uppercase I64, I32 etc as constraints in operation definitions @superlopuh (#2909)
Installation
- pip prod(deps): bump marimo from 0.7.8 to 0.7.9 @dependabot (#2918)
- pip prod(deps): update pytest requirement from <8.3 to <8.4 @dependabot (#2917)
- pip prod(deps): bump ruff from 0.5.3 to 0.5.4 @dependabot (#2919)
- pip prod(deps): bump textual from 0.72.0 to 0.73.0 @dependabot (#2902)
- pip prod(deps): bump marimo from 0.7.7 to 0.7.8 @dependabot (#2900)
- pip prod(deps): bump ruff from 0.5.2 to 0.5.3 @dependabot (#2901)
- pip prod(deps): bump marimo from 0.7.5 to 0.7.7 @dependabot (#2896)
- pip prod(deps): bump pytest-asyncio from 0.23.7 to 0.23.8 @dependabot (#2898)
Miscellaneous
v0.21.0
xDSL framework
- ci: ignore more pyright errors in the frontend @superlopuh (#2895)
- core: (rewriting) Fix recursive type conversion in block arguments for nested regions @webmiche (#2871)
- core: Implement EffectKind @PapyChacal (#2793)
- core: Add option to clone name hints @superlopuh (#2822)
- core: Make print_string aware of indentation @Moxinilian (#2809)
- core: store blocks as doubly-linked list on Region [2/2] @superlopuh (#2795)
- core: add RegionBlocks to abstract away the block storage [1/2] @superlopuh (#2794)
- core: Implement block dominance @PapyChacal (#2790)
- core: replace BlockReverseOps with a Reversible conformance @superlopuh (#2792)
- misc: Small refactor to
PatternRewriter.replace_op
@alexarice (#2789) - core: [NFC] Split irdl.py @PapyChacal (#2705)
- core: make VarOperand, VarOpResult, and VarRegion tuple instead of list @superlopuh (#2767)
- core: Move MLContext out of ir, move get_all_dialects to dialects. @PapyChacal (#2749)
- core: Implement MemrefLayoutAttr base class and use in parser. @PapyChacal (#2718)
- core: (rewriter) Correctly pass safe_erase in replace_op @AntonLydike (#2707)
- core: Allow to parse string enums @math-fehr (#2696)
- core: Implement and use ConstraintContext @PapyChacal (#2700)
- core: allow to define a RangeConstraint on a region's entry arguments. @PapyChacal (#2699)
Dialects
- dialects: add parametrised rz gate @alexarice (#2821)
- (dialect): minor changes to csl and csl_wrapper @n-io (#2888)
- dialects: (riscv_snitch) remove always ZERO rd in snitch config ops @superlopuh (#2886)
- (dialects): adding csl_wrapper dialect @n-io (#2867)
- dialects: (riscv_snitch) Add f32 mul, add, pack from Snitch packed SIMD extension @nazavode (#2872)
- dialects: (linalg) Fix matmul custom syntax and custom init @qaco (#2852)
- dialects: (memref_stream) remove unused operands in canonicalization @superlopuh (#2851)
- dialects: (affine) Add custom syntax to affine.apply @superlopuh (#2848)
- dialects: (transform) Define non-parametrized transform types @qaco (#2860)
- dialects: (snitch_stream) add custom syntax to streaming region @superlopuh (#2859)
- dialects: (memref) add custom syntax for memref_subview @superlopuh (#2840)
- dialects: (riscv) remove noisy () -> in get_(float_)register and li @superlopuh (#2837)
- dialects: (memref) Make memref.extract_strided_metadata have NoMemoryEffect @AntonLydike (#2844)
- dialects: (memref) Make memref.extract_strided_metadata have NoMemoryEffect @AntonLydike (#2842)
- dialects: (memref_stream) add verification for block arguments @superlopuh (#2838)
- dialects: (memref_stream) print memref_stream.generic with newlines @superlopuh (#2815)
- dialects: (memref_stream) add interleaved iterator @superlopuh (#2813)
- dialects: (memref_stream) make bounds in dialect index typed not IntAttr @superlopuh (#2810)
- dialects: (riscv) RISCVOp -> RISCVAsmOperation subclass of IRDLOperation @superlopuh (#2805)
- dialects: (wasm) Add wat encoding @superlopuh (#2801)
- (dialects): csl_stencil apply op @n-io (#2781)
- dialects: (riscv) Make riscv.get_register pure @AntonLydike (#2797)
- dialects: (wasm) Add binary encoding interface @superlopuh (#2788)
- dialects: (riscv) Add HasInsntrait and implement trait for some operations @AntonLydike (#2784)
- dialects: Implement MemoryEffect on RISCV op, just reuse main CSE. @PapyChacal (#2685)
- dialects: (riscv, x86) do not print empty <> for unallocated registers @superlopuh (#2786)
- dialects: (wasm) Add wasm dialect @superlopuh (#2780)
- dialects: (riscv) Fix I, S and shift operation immediate bounds @superlopuh (#2785)
- dialects: (memref_stream) Add
memref_stream.fill
@superlopuh (#2772) - dialects: (memref_stream) Add an inits field to memref_stream.generic [1/3] @superlopuh (#2763)
- dialects: (csl) Add csl.constants op and printing @AntonLydike (#2782)
- (minor): allow csl_stencil.access to operate on own data @n-io (#2777)
- dialects: (memref) canonicalize removes unused memref allocs @superlopuh (#2774)
- dialects: Add qref dialect @alexarice (#2769)
- (dialect+transform): stencil to new csl_stencil dialect and transform @n-io (#2766)
- dialects: (builtin) Fix printing and parsing of
UnitAttr
@superlopuh (#2744) - dialects: Add qssa dialect @alexarice (#2746)
- dialects: Add memref.extract_strided_metadata op @JosseVanDelm (#2748)
- dialects: (csl) Improve some constructor inits @AntonLydike (#2745)
- dialects: (csl) adding constructors for CSL ops @n-io (#2742)
- dialects: (memref_stream) Add some more verification for generic op @superlopuh (#2721)
- dialect: (csl) Add signedness cast and concat struct ops @AntonLydike (#2714)
- dialects: (csl) Small incremental fixes to dialect structure (stacked PR) @AntonLydike (#2711)
- dialects: (csl) set_tile_code fix traits @dk949 (#2712)
- dialects: Add NoMemoryEffects to memref and snitch_runtime dialect ops @AntonLydike (#2706)
- dialects: Define memref.atomic rmw @PapyChacal (#2702)
- dialects: (csl) print dsd ops @n-io (#2694)
- dialects: (arith) Add verifier to 'arith.index_cast' op and fix returns in inits @AntonLydike (#2682)
- dialects: (csl) builtin math lib for DSDs @n-io (#2686)
Transformations
- (transform): csl-stencil to csl-wrapper pass @n-io (#2878)
- transformations: Add memref-stream-tile-outer-loops @superlopuh (#2869)
- transformations: handle strided layout attr in memref_stream lowering @superlopuh (#2866)
- transformations: Handle interleaving in convert-memref-stream-to-loops @superlopuh (#2831)
- transformations: convert-memref-stream-to-snitch-stream fix name @superlopuh (#2865)
- transformations: Handle affine.apply in lower-affine @superlopuh (#2849)
- transformations: Add memref.subview lowering to convert-memref-to-riscv @superlopuh (#2847)
- transformations: Add dealloc lowering to convert-memref-to-riscv @superlopuh (#2856)
- transformations: Handle more division sizes in memref-stream-interleave @superlopuh (#2845)
- transformations: Handle more data types in memref to riscv lowering @superlopuh (#2846)
- transformations: Fix subview hack in stencil conversion @PapyChacal (#2843)
- (transform): convert to csl_stencil.apply @n-io (#2803)
- transformations: add memref-stream-interleave @superlopuh (#2823)
- dialects: Implement MemoryEffect on RISCV op, just reuse main CSE. @PapyChacal (#2685)
- transformations: Add
memref-stream-(infer|generalize)-fill
passes @superlopuh (#2776) - transformations: Only stream used inputs in
memref-streamify
@superlopuh (#2775) - transformations: Add memref-stream-fold-fill @superlopuh (#2773)
- transformations: Fix bug in memref-stream-unnest-out-parameters @superlopuh (#2771)
- transformations: memref_streamify handle constant inits [3/3] @superlopuh (#2765)
- transformations: Support constant inits in memref_stream.generic lowering [2/3] @superlopuh (#2764)
- transforms: (convert-snrt-to-riscv) Convert to arith where possible @AntonLydike (#2783)
- transformations: add qref/qssa conversions @alexarice (#2770)
- (minor): allow csl_stencil.access to operate on own data @n-io (#2777)
- (dialect+transform): stencil to new csl_stencil dialect and transform @n-io (#2766)
- transformations: fix yielding of values in memref_stream.generic lowering @superlopuh (#2760)
- transformations: do not insert affine.apply ops when streaming @superlopuh (#2758)
- transforms: stencil-tensorize-z-dim accept stencil.field as function arg @n-io (#2756)
- transforms: (experimental) minor updates to stencil-tensorize-z-dim @n-io (#2741)
- transformations: Add support for strided MemRefs in 'load' and 'store' @zero9178 (#2854)
Backend
- backend: (riscv) preserve name hints when casting operands @superlopuh (#2858)
- backend: (riscv) don't print external function declaration in assembly @superlopuh (#2855)
- backend: reserve registers not preserved across function calls in RISC-V @superlopuh (#2853)
- backend: (riscv) move register-allocation tests in their own directory @tobiasgrosser (#2811)
- dialects: (riscv) Add HasInsntrait and implement trait for some operations @AntonLydike (#2784)
- dialects: (csl) Add csl.constants op and printing @AntonLydike (#2782)
- backend: (riscv) riscv-prologue-epilogue-insertion @bpervan (#2778)
- backend: (riscv) Add prologue epilogue insertion @zero9178 (#2752)
- backend: (csl) Slightly rework printer to promote certain values to inline expressions @AntonLydike (#2728)
- backend: (csl) Rework printing logic for printing individual modules @AntonLydike (#2710)
- backend: (csl) conditional statements @n-io (#2697)
- dialects: (csl) print dsd ops @n-io (#2694)
Interpreter
- interpreter: (memref_stream) add interpreter support for imperfect nesting @superlopuh (#2743)
API
- api: use new base helper in more operation definitions @superlopuh (#2893)
- api: move PunctuationSpelling to module-level @superlopuh (#2894)
- api: use constraints to carry type information in pyrdl @superlopuh (#2890)
- api: add generic parameter to attribute constraint @superlopuh (#2889)
- api: add printing and parsing of dynamic lists as in MLIR @superlopuh (#2839)
- misc: remove deprecated methods that have been deprecated for a while @superlopuh (#2729)
🗎 Documentation
- docs: (marimo) prettify onnx notebook @superlopuh (#2880)
- docs: (toy) remove all custom instructions from Toy @superlopuh (#2863)
- docs: add onnx demo notebook @superlopuh (#2796)
- documentation: allow marimo notebooks as documentation @superlopuh (#2787)
🐛 Bug Fixes
- (minor): print properties on csl_stencil.apply @n-io (#2868)
- bug: (snitch_stream) simplify crashes when all bounds are 1 @superlopuh (#2818)
- backend: (riscv) riscv-prologue-epilogue-insertion @bpervan (#2778)
- transformations: fix yielding of values in memref_stream.generic lowering @superlopuh (#2760)
Testing
- testing: fix irdl-to-pyrdl filecheck @superL...
v0.20.0
xDSL framework
- core: unify (Pattern)Rewriter insertion and inlining APIs around InsertPoint @superlopuh (#2660)
- core: (irdl) Allow ClassVar with all uppercase name @AntonLydike (#2687)
- core: implement RangeConstraint and use it without functional change @PapyChacal (#2675)
- core: add
inline_block_at_location
toPatternRewriter
@superlopuh (#2664) - core: make AttrConstraint frozen @superlopuh (#2659)
- core: preserve name hints when replacing ops with multiple results @superlopuh (#2655)
- rewriting: Add convert-ml-program-to-memref @superlopuh (#2580)
- core: Implement a simplified MemoryEffect interface. @PapyChacal (#2640)
- core: Make printer scoped. @PapyChacal (#2614)
- core: Implement and test eq and hash on OpOperands. @PapyChacal (#2639)
- core: Expect Data's carried type to be Hashable. @PapyChacal (#2630)
- core: Refactor irdl_op_definition @math-fehr (#2575)
- core: fix line numbers in split input mode. @PapyChacal (#2563)
- core: Block inlining API improvements @PapyChacal (#2572)
- core: Strip multi-digit suffixes in name_hint, not only single-digit. @PapyChacal (#2551)
- core: Fix xDSL printing multiple values with the same name. @PapyChacal (#2545)
- core: add argument and result types getters to CallableOpInterface @superlopuh (#2535)
- core: Allowing overload of ClassVar from superclass @n-io (#2690)
Dialects
- dialects: (memref_stream) add a verifier for order of iterator types in memref_stream.generic @superlopuh (#2680)
- dialects: (riscv_func) mark riscv_func.func as isolated from above @superlopuh (#2669)
- dialects: (memref_stream) use memref_stream iterator type, not linalg @superlopuh (#2665)
- dialects: (riscv) mark assembly region as isolated from above @superlopuh (#2668)
- dialects: [arith] Add extended multiplication operations @math-fehr (#2670)
- dialects: (onnx) Add onnx.Sigmoid @alecerio (#2479)
- dialects: stencil: more canonicalization @PapyChacal (#2645)
- dialects: (x86) - AVX registers + some instructions (bonus PR!) @KGrykiel (#2586)
- dialects: Update arith, math, scf and stencil side-effect traits. @PapyChacal (#2641)
- dialects: stencil: Add canonicalization patterns and related traits. @PapyChacal (#2623)
- dialects: (csl) Added operations to manage symbols @dk949 (#2616)
- dialects: arith.constant is Pure (no side effects) @PapyChacal (#2632)
- dialects: (csl) Adding Constructors for
comptime_struct
andcolor
, as well as somelayout
functions. @dk949 (#2612) - dialects: (csl) Added call op and tasks @dk949 (#2603)
- dialects: (hw) Add hw.module.extern @Moxinilian (#2597)
- core: Add irdl.base @math-fehr (#2581)
- dialects: (csl) Added basic types @dk949 (#2594)
- dialects: (csl) Add csl dialect ops @AntonLydike (#2591)
- dialects: (x86) PR20 - remaining x86Lite instructions + cleanup (season finale) @KGrykiel (#2573)
- dialects: (x86) PR19 - move assembly helpers to separate class @KGrykiel (#2570)
- dialects: (x86) PR18 - m_pop + added rsp dataflow to push @KGrykiel (#2560)
- dialects: (memref_stream) add StridePattern @superlopuh (#2548)
- dialects: (x86) PR17 - m_idiv and single operand imul @KGrykiel (#2558)
- dialects: (x86) PR16 - Conditional Jumps @KGrykiel (#2552)
- dialects: (onnx) add onnx.Squeeze @alecerio (#2489)
- dialects: (x86) PR15 - S Operations @KGrykiel (#2539)
- dialects: Implement helpers on stencil attributes and simplify shape inference. @PapyChacal (#2517)
- dialects: (x86) PR14 - Labels and Directives @KGrykiel (#2538)
- dialects: (x86) - mem access helper @KGrykiel (#2537)
- dialects: (linalg) add linalg.sub @superlopuh (#2533)
- dialects: (x86) PR13 - M Operations @KGrykiel (#2531)
- dialects: (x86) PR12 - IDivOP (register version) @KGrykiel (#2530)
- dialects: (x86) PR11 - RMI Operations @KGrykiel (#2529)
- dialects: (x86) PR10 - RRI Operations @KGrykiel (#2524)
- dialects: Implement llvm.mlir.zero @PapyChacal (#2527)
- Dialects: (csl) Simplify DSD types in IR @n-io (#2683)
- Dialects: (csl) adding dsd ops @n-io (#2674)
- dialects: (csl) Data structure descriptors @n-io (#2648)
- api: Fixed builtin.DenseArrayBase not supporting IndexType @watermelonwolverine (#2633)
- dialects: (csl) add modules @dk949 (#2602)
- dialects: (hw) Add HWModuleLike trait @Moxinilian (#2577)
Transformations
- transformations: Handle imperfect loop nest when lowering memref_stream.generic to loops @superlopuh (#2678)
- transformations: add memref-stream-unnest-out-parameters @superlopuh (#2677)
- transformations: linalg.generic to loops factor out some helpers @superlopuh (#2662)
- transformations: linalg.generic to loops uses InsertPoint @superlopuh (#2661)
- transformations: scf-for-loop-folding handle iter args @superlopuh (#2657)
- transforms: Add function-constant-pinning pass to specialize functions @AntonLydike (#2389)
- transformations: fold scf loops instead of riscv_scf @superlopuh (#2656)
- transformations: Stencil shape inference fixes @PapyChacal (#2595)
- transformations: CSE: Refactor for reuse-friendliness @PapyChacal (#2642)
- transformations: Implement generic CSE. @PapyChacal (#2631)
- dialects: arith.constant is Pure (no side effects) @PapyChacal (#2632)
- transformations: fix memref_streamify non idempotency and wrong maps for outs @superlopuh (#2589)
- transformations: (riscv) handle f64 lowering in int to float conversion @superlopuh (#2561)
- transformations: (convert-snrt-to-riscv) Add lowerings for even more info ops @AntonLydike (#2428)
- transformations: implement stencil-tensorize-z-dimension @n-io (#2516)
- transforms: (convert-snrt-to-riscv) Add smaller number of ops @AntonLydike (#2559)
- transformations: Fix mlir opt printing to stderr @AntonLydike (#2553)
- transformations: stencil conversion fixes and improvements @PapyChacal (#2526)
- transformation: stencil shape inference fixes @PapyChacal (#2522)
- transformations: handle scalar arguments to generic ops when lowering @superlopuh (#2543)
- transformations: Implement and test
memref-to-gpu
. @PapyChacal (#2542) - transformations: (riscv_scf) add a pass to fuse perfectly nested loops @superlopuh (#2540)
- transformations: add malloc to riscv function call lowering @superlopuh (#2532)
- dialects: Implement helpers on stencil attributes and simplify shape inference. @PapyChacal (#2517)
- transformations: add onnx.Sub to linalg lowering @superlopuh (#2534)
- transformations: Switch MPI lowering to use llvm.mlir.zero @PapyChacal (#2528)
Backend
- backend: (csl) Added printing for
param
,comptime_struct
and some builtins @dk949 (#2684) - backend: (csl) Maths and memory operation printing @dk949 (#2676)
- backend: (csl) printing for functions, tasks and layout related things @dk949 (#2647)
- backend: (riscv) reduce register pressure for stream configuration @superlopuh (#2621)
- backend: (riscv) Don't make unreserved registers available @superlopuh (#2620)
- backend: (riscv) Allocate ub and step before loop, and lb after @superlopuh (#2619)
- backend: (csl) Add printing some scf and memref features @dk949 (#2610)
- backend: (csl) Add printing for CSL dialect ops @AntonLydike (#2593)
- backend: (riscv) flatten loops that don't use induction variables @superlopuh (#2585)
- backend: (riscv) use fcvt.d.w for integer-valued float constants @superlopuh (#2583)
- backend: (snitch) insert fmv ops when necessary when lowering streams @superlopuh (#2574)
- backend: (riscv) move results of lowered riscv_scf.for loops @superlopuh (#2568)
Interpreter
- misc: Implement and test dynamic IRDL dialect registering. @PapyChacal (#2654)
- interpreter: use function type when parsing xdsl-run arguments @superlopuh (#2536)
- interpreter: (riscv) add fmv.d implementation @superlopuh (#2571)
🗎 Documentation
- docs: Change link to pr title formatting @AntonLydike (#2637)
- documentation: superscript i @superlopuh (#2622)
🐛 Bug Fixes
- backend: (riscv) Don't make unreserved registers available @superlopuh (#2620)
- backend: (riscv) Allocate ub and step before loop, and lb after @superlopuh (#2619)
- core: Strip multi-digit suffixes in name_hint, not only single-digit. @PapyChacal (#2551)
Testing
- testing: unflatten the loops with iteration arguments in bottom-up tests @superlopuh (#2658)
- testing: fix affine maps in matmul test @superlopuh (#2666)
- tests: Fix broken filecheck @AntonLydike (#2667)
- testing: represent kernels with no reduction in linalg.generic on memrefs @superlopuh (#2590)
- testing: make loop bounds match parallel iterators in bottom-up test @superlopuh (#2588)
- testing: (snitch) bottom-up tests have no riscv @superlopuh (#2579)
- testing: raise riscv_scf to scf in bottom-up tests @superlopuh (#2578)
- testing: no more inout parameters in bottom-up test @superlopuh (#2565)
- testing: remove dense test kernel from bottom-up tests @superlopuh (#2564)
- testing: use arith in bottom-up tests @superlopuh (#2562)
- testing: update matmul bottom-up test @superlopuh (#2547)
Installation
- pip prod(deps): bump ruff from 0.4.7 to 0.4.8 @dependabot (#2691)
- pip prod(deps): bump ruff from 0.4.6 to 0.4.7 @dependabot (#2681)
- pip prod(deps): update typing-extensions requirement from <4.12,>=4.7 to >=4.7,<4.13 @dependabot (#2644)
- pip prod(deps): bump ruff from 0.4.5 to 0.4.6 @dependabot (#2653)
- pip prod(deps): bump textual from 0.63.1 to 0.63.2 @dependabot (#2635)
- pip prod(deps): bump onnx from 1.16 to 1.16.1 @dependabot (#2636)
- Fix typing-extensions version @math-fehr (#2638)
- pip prod(deps): bump ruff from 0.4.4 to 0.4.5 @dependabot (#2627)
- pip prod(deps): bump textual from 0.62.0 to 0.63.1 @dependabot (#2625)
- pip prod(deps): bump pytest-asyncio from 0.23.6 to 0.23.7 @dependabot (#2607)
- pip prod(deps): bump textual from 0.61.1 to 0.62.0 @dependabot (#2613)
- pip prod(deps): bump textual from 0.60.1 to 0.61.1 @dependabot (#2608)
- pip prod(deps): bump ...
v0.19.0
Changes
xDSL framework
- core: Implement HasAncestor. @PapyChacal (#2514)
- core: Factor out visibility keyword parsing @Moxinilian (#2507)
- core: Handling true and false literals in DenseBaseAttr @mesham (#2492)
- core: Implement TypedAttribute, leverage in declarative assembly format. @PapyChacal (#2493)
- core: Remove redundant output from IRDLOperation's verification error. @PapyChacal (#2481)
- core: Implement unqualified attributes in declarative syntax. @PapyChacal (#2480)
- core: Implement MessageConstraint @PapyChacal (#2474)
- core: Fix OptionallyParsableDirective. @PapyChacal (#2475)
Dialects
- dialects: (x86) PR9 - MI Operations @KGrykiel (#2519)
- dialects: (x86): RI Operations adjustment @KGrykiel (#2518)
- dialects: (x86) PR8 - MR Operations @KGrykiel (#2510)
- dialects: (hw) Fix printing of module visibility @Moxinilian (#2512)
- dialects: Factor out sym_visibility parsing in all dialects @Moxinilian (#2513)
- dialects: (x86) PR7 - RI Operations @KGrykiel (#2502)
- dialects: Implement stencil custom syntax @PapyChacal (#2501)
- dialects: Simplify stencil's offset mapping implementation @PapyChacal (#2509)
- dialects: stencil IRDL update. @PapyChacal (#2500)
- dialects: (hw) Add visibility keyword to hw.module @Moxinilian (#2508)
- dialects: (HLFIR) Addition of the HLFIR dialect @mesham (#2491)
- dialects: (x86) PR6 - RM Operations @KGrykiel (#2490)
- dialects: (hw) Revert HWModuleOp's usage of InnerRefNamespaceTrait @Moxinilian (#2498)
- dialects: (hw) Add hw.instance operation @Moxinilian (#2486)
- dialects: (x86) - Reformats and changes in naming convention @KGrykiel (#2487)
- dialects: (fir) Update to the MLIR hash version of FIR that we use @mesham (#2476)
- dialects: (onnx) add onnx.Transpose @alecerio (#2477)
- dialects: (x86) PR5_3 - single operand instructions - source and destination @KGrykiel (#2485)
- dialects: (x86) PR5_2 - single operand instructions - one destination @KGrykiel (#2455)
- transformations: lower
stencil.combine
, refactorstencil.buffer
@PapyChacal (#2457) - dialects: (llvm) Fix elem_type bug in GEPOp builder @Moxinilian (#2472)
- dialects: (onnx) integrate onnx.Transpose in front-end @alecerio (#2488)
- frontend: (onnx) integration matmul op in onnx frontend @alecerio (#2469)
Transformations
- transformations: (onnx) fix lower onnx.Relu lowering @kayode-gif (#2435)
- transformations: lower
stencil.combine
, refactorstencil.buffer
@PapyChacal (#2457)
🗎 Documentation
- misc: add total and last week download counts @superlopuh (#2525)
🐛 Bug Fixes
- dialects: (hw) Fix printing of module visibility @Moxinilian (#2512)
- dialects: (hw) Revert HWModuleOp's usage of InnerRefNamespaceTrait @Moxinilian (#2498)
- core: Fix OptionallyParsableDirective. @PapyChacal (#2475)
- interactive: don't include the child in the root to child list @superlopuh (#2282)
- dialects: (llvm) Fix elem_type bug in GEPOp builder @Moxinilian (#2472)
Testing
- testing: fix pyright failures when onnx is not installed @superlopuh (#2471)
Continuous Integration
- Revert "ci: use a separate workflow for codecov upload" @superlopuh (#2503)
- ci: use a separate workflow for codecov upload @superlopuh (#2497)
Installation
- dependencies: (onnx) use versioned onnx instead of weekly @superlopuh (#2515)
- pip prod(deps): bump textual from 0.58.0 to 0.58.1 @dependabot (#2520)
- pip prod(deps): update pytest requirement from <8.2 to <8.3 @dependabot (#2511)
- pip prod(deps): bump textual from 0.57.1 to 0.58.0 @dependabot (#2505)
- pip prod(deps): bump ruff from 0.3.7 to 0.4.2 @dependabot (#2504)
- pip prod(deps): bump black[jupyter] from 24.4.1 to 24.4.2 @dependabot (#2506)
- pip prod(deps): bump black[jupyter] from 24.4.0 to 24.4.1 @dependabot (#2496)
- pip prod(deps): bump textual from 0.56.4 to 0.57.1 @dependabot (#2484)
Miscellaneous
- core: Implement HasAncestor. @PapyChacal (#2514)
- core: Remove redundant output from IRDLOperation's verification error. @PapyChacal (#2481)
- core: Implement MessageConstraint @PapyChacal (#2474)
- core: Fix OptionallyParsableDirective. @PapyChacal (#2475)
Interactive
- interactive: don't include the child in the root to child list @superlopuh (#2282)
- interactive : remove bug that happens when argument screen is cleared and entered @dshaaban01 (#2364)
v0.18
xDSL framework
- frontend (onnx): implementation graph visiting @alecerio (#2464)
- frontend: (onnx) visit_node implementation @alecerio (#2441)
- core: Fix optional operand declarative printing. @PapyChacal (#2448)
- core: More informative rewrite errors. @PapyChacal (#2445)
- frontend: [onnx] add test_visit_value_info_multiple_time @alecerio (#2437)
- core: Add optional attributes to declarative assembly format @lucjaulmes (#2407)
- frontend: (onnx) Unify type builders again @alecerio (#2418)
- frontend: [onnx] unify type builders @alecerio (#2334)
- core: Make location parsing public @Moxinilian (#2371)
- core: Fix printing of non-identifier symbols @Moxinilian (#2369)
- core: Make print_ssa_value return chosen name @Moxinilian (#2370)
- rewriting: Fix TypeConversionPattern recursive support for DictionaryAttr @Moxinilian (#2374)
- core: Fix bug in pattern rewriter when ErasedSSAValue is present @math-fehr (#2365)
- core: rewrite_op returns whether an action was performed @superlopuh (#2331)
- rewriting: Extend TypeConversionPattern annotation @Moxinilian (#2332)
- core: add insert_op_at_location to PatternRewriter @superlopuh (#2308)
- core: (pattern_rewriter) Revert accidental change @AntonLydike (#2318)
- core: use InsertPoint for block inlining @superlopuh (#2311)
- core: declarative format variable fix @PapyChacal (#2313)
- core: Make SSAValue hashable @AntonLydike (#2302)
- core: move InsertPoint to Rewriter [NFC] @superlopuh (#2310)
- core: make ModulePass frozen @superlopuh (#2254)
- core: Refix opaque syntax attribute spacing @PapyChacal (#2256)
- core: Spacing fix in EnumAttribute and OpaqueSyntaxAttribute @PapyChacal (#2248)
- core: Implement first cases of assembly format optional groups @PapyChacal (#2239)
- core: Assembly format spacing fix. @PapyChacal (#2238)
- Implement and test optional operand and result variables. @PapyChacal (#2107)
- core: Add checks on chaining variadics in declarative assembly format. @PapyChacal (#2106)
- core: add Hasher and HashableModule @superlopuh (#2210)
- core: Allow to get the expected base of an IRDL constraint @math-fehr (#2175)
- core: Make IRDL operations and attributes final @math-fehr (#2159)
- core: Allow unregistered citizens in a registered dialects @PapyChacal (#2161)
- frontend: (onnx) add get_shape and get_tensor_type @superlopuh (#2134)
- core: add custom attr and prop name support to assembly format @superlopuh (#2123)
- frontend: (onnx) re-arrange elem type @alecerio (#2132)
- core: Implement Printer property retrocompatibility. @PapyChacal (#2082)
- core: add replacement arg_values to inline_block_before @superlopuh (#2061)
Dialects
- dialects: (onnx) implementation onnx.MatMul @alecerio (#2467)
- dialects: (x86) PR5_1 - single operand instructions - one source @KGrykiel (#2398)
- dialects: (seq) Add ConstClockOp @Moxinilian (#2461)
- dialects: (comb) Accept non-integer types in mux @Moxinilian (#2459)
- dialects: (comb) Fix bugs in variadic operations @Moxinilian (#2458)
- dialects: (comb) Fix lowBit case in extract op @Moxinilian (#2460)
- dialects: Implement
stencil.combine
@PapyChacal (#2454) - dialects: (seq) Finish
seq.compreg
optionals @lucjaulmes (#2450) - dialects: Implement
stencil.dyn_access
, test it (andstencil.index
) @PapyChacal (#2380) - dialects: Add accfg dialect operations @JosseVanDelm (#2430)
- dialects: (linalg) add linalg.broadcast @kayode-gif (#2433)
- dialects: (seq) Add builder and verifier for CompRegOp @Moxinilian (#2429)
- dialects: (builtin) Fix bound computation crash for i0 @Moxinilian (#2403)
- dialects: (seq) Add CompRegOp @Moxinilian (#2404)
- dialects: (riscv_snitch) Add Xdma extension operations @AntonLydike (#2410)
- dialects: (hw) Add
hw.module
andhw.output
operations @Moxinilian (#2366) - dialects: (linalg) add linalg.conv_2d_nchw_fchw @kayode-gif (#2400)
- dialects: (linalg) add attributes to linalg.pooling_nchw_max and base class for pooling ops @kayode-gif (#2392)
- dialects: (x86) PR4 - two-register-operand instructions @KGrykiel (#2379)
- dialects: Fix affine.ParallelOp boundsGroup checks. @PapyChacal (#2235)
- dialects: (linalg) add linalg.pooling_nchw_max @kayode-gif (#2388)
- dialects: (x86) PR3 - Assembly emission @KGrykiel (#2375)
- dialects: (x86) PR2 - Operations: add @KGrykiel (#2351)
- dialects: (comb) Fix replicate op @Moxinilian (#2372)
- dialects: (linalg) allow for empty results in linalg.fill custom format @superlopuh (#2363)
- dialects: (comb) Fix icmp parser/printer discrepancy and 2-state semantics modelling @Moxinilian (#2335)
- dialects: (x86) PR1 - Registers @KGrykiel (#2333)
- dialects: (gpu) Adding
gpu.wait
op @tavakkoliamirmohammad (#2298) - dialects: (comb) Fix extract op @Moxinilian (#2327)
- dialects: (comb) Fix concat op @Moxinilian (#2326)
- dialects: (air) Add air dialect @gabrielrodcanal (#2234)
- bug: (onnx) fix onnx.Gemm @kayode-gif (#2323)
- dialects: (riscv) add index to registers @zero9178 (#2321)
- dialects: (snitch_stream) make snitch_stream parameters go outwards-in @superlopuh (#2294)
- dialects: (llvm) Fix constructor for llvm.InlineAsmOp @AntonLydike (#2312)
- dialects (hw): Fix Formatting @webmiche (#2317)
- dialects: (hw) Add
InnerSymAttr
attributes to HW dialect. @lucjaulmes (#2251) - dialects: Implement
tensor.insert_slice
andtensor.extract_slice
@PapyChacal (#2305) - dialects: Implement
bufferization.alloc_tensor
andbufferization.to_tensor
@PapyChacal (#2306) - dialects: linalg minor fixes @PapyChacal (#2307)
- dialects: (linalg) add linalg.matmul @kayode-gif (#2296)
- (dialects): add linalg.tranpose @kayode-gif (#2280)
- dialects: (snitch_stream) simplify bounds of size 1 in stride pattern @superlopuh (#2276)
- dialects: (linalg) add linalg.mul @kayode-gif (#2278)
- dialects: reformat onnx.Constant to align with MNIST models one @kayode-gif (#2261)
- dialects: (riscv) mul is pure @superlopuh (#2257)
- dialects: make linalg.IteratorType an EnumAttribute @PapyChacal (#2249)
- dialects: (snitch_stream) add offsets to StridePattern and use in interpreter @superlopuh (#2252)
- dialects: (memref_stream) allow scalar argument to memref_stream generic @superlopuh (#2250)
- dialects: (memref) add custom format to memref.dealloc @superlopuh (#2247)
- onnx.reshape should check for product not length @kayode-gif (#2241)
- (dialects): add tensor.reshape @kayode-gif (#2240)
- dialects: (ml_program) add ml_program.global and ml_program.global_load_const @kayode-gif (#2209)
- dialects: Fix inline_asm unitattrs to not be properties @JosseVanDelm (#2223)
- dialects: Add LLVM InlineAsm op @JosseVanDelm (#2203)
- dialects: (hw) Add InnerSymbolTable and InnerRefNamespace to HW dialect @lucjaulmes (#1780)
- dialects: Update gpu.launch_func @PapyChacal (#2163)
- dialects: add linalg.fill @kayode-gif (#2189)
- dialects: (memref) add custom syntax to memref.alloc @superlopuh (#2191)
- dialects: (memref_stream) add memref_stream.generic @superlopuh (#2148)
- dialects: (memref_stream) add streaming region @superlopuh (#2146)
- dialects: (tensor) add tensor.Empty @kayode-gif (#2133)
- dialects: (snitch_stream) replace stride pattern op with attribute @superlopuh (#2143)
- dialects: (snitch_stream) add stride pattern attribute @superlopuh (#2141)
- dialects: (LLVM) Fix use of attributes dict when dialect specifies prop_def @ed741 (#2144)
- dialects: (aie) Add aie dialect @gabrielrodcanal (#1763)
- dialects: (snitch_stream) reverse bounds and strides in snitch_stream @superlopuh (#2139)
- dialects: (snitch_stream) remove StridedReadOp and LowerStridedWriteOp @superlopuh (#2127)
- dialects: (snitch_stream) remove stride pattern operand from strided read and write @superlopuh (#2126)
- dialects: (memref_stream) add memref_stream dialect with read and write ops @superlopuh (#2111)
- dialects: (memref) add custom syntax to memref.get_global @superlopuh (#2124)
- dialects: (linalg) add linalg.add @kayode-gif (#2129)
- dialects / bug : (linalg) linalg.generic constructor does not have a result types argument @kayode-gif (#2125)
- dialects: (stream) add abstract superclass for stream read and write @superlopuh (#2110)
- dialects: (riscv) canonicalization should move constants not replace with li @superlopuh (#2104)
- dialects: (arith) adding an arith canonicalisation pattern @dshaaban01 (#2094)
- dialects: (riscv) don't canonicalize getting the zero register to li 0 @superlopuh (#2101)
- dialects: (riscv) fix signedness in riscv @superlopuh (#2100)
- dialects: (builtin) fix ranges for integers @superlopuh (#2099)
- dialects: (riscv_scf) make riscv_scf.yield implicit @superlopuh (#2092)
- dialects: (riscv) Canonicalize the loading 0 to
li zero, 0
@superlopuh (#2077) - dialects (riscv_cf): Allow float register types for block argument types @compor (#2083)
- dialects (riscv): Add canonicalization pattern to fuse
fmul.d
andfadd.d
tofmadd.d
@compor (#2079) - dialects: (onnx) add onnx.EntryPoint @kayode-gif (#2078)
- dialects: (onnx) add onnx.MaxPoolSingleOut @kayode-gif (#2072)
- dialects (riscv): Fix missing attribute name from custom format @compor (#2075)
- dialects: (hw) Add InnerRefNamespaceTrait to HWModuleOp @lucjaulmes (#2406)
- dialects: (pdl) Fix printer and parser for PDL range type @Moxinilian (#2325)
- dialects: (linalg) add custom printer and parser support for doc and library call @jorendumoulin (#2090)
Transformations
- dialects: Implement
stencil.combine
@PapyChacal (#2454) - dialects: Implement
stencil.dyn_access
, test it (andstencil.index
) @PapyChacal (#2380) - transformations: implement
stencil.store_result
lowering. @PapyChacal (#2447) - transformations: Improve and test stencil.index's lowering. @PapyChacal (#2444)
- core: More informative rewrite errors. @PapyChacal (#2445)
- transformations: (onnx) lower onnx.Conv to linalg @kayode-gif (#2396)
- transformations...
v0.17
Changes
xDSL framework
- core: Implement BytesAttr @PapyChacal (#2032)
- core: Implement basic ConstraintVar resolution for assembly format @PapyChacal (#1996)
- core: Add listener in PatternRewriter @math-fehr (#1905)
- core: Fix and test empty variadic directives in declarative assembly format. @PapyChacal (#2069)
- core: make ParametrizedAttribute parameters a tuple @superlopuh (#2054)
- core: properties in declarative format @math-fehr (#2031)
- core: (affine) add compress_dims @superlopuh (#2025)
- core: (affine) add
used_dims
helper to AffineExpr @superlopuh (#2030) - core: Add attribute variables to the declarative assembly format. @math-fehr (#2028)
- dialects: Define nontemporal properties on memref accesses. @PapyChacal (#2024)
- dialects: (builtin) add
NoneType
@kayode-gif (#2016) - core: Support variadic operands and results in declarative assembly format. @PapyChacal (#2011)
- core: Add support for nested inferrence in IRDL @math-fehr (#2005)
- core: Make assembly format use attr-dict for properties @PapyChacal (#2013)
- core: Simplify the pattern rewriter @math-fehr (#1910)
- core: use worklist in pattern matching algorithm @math-fehr (#1908)
- core: Support hex denseAttr parsing for integers, f32, f64 @JosseVanDelm (#1974)
- core: Move to assertions for modification permission checks @tarinduj (#1984)
- core: Add parsing of aliases @math-fehr (#1972)
- core: Add support for lazily loading dialects @math-fehr (#1917)
- core: (printer) use the same code to print op attrs, properties, and DictionaryAttr @superlopuh (#1954)
- core: (parser) add UnresolvedArgument with no type @superlopuh (#1952)
- core: Add region inlining helpers to rewriter (before/after/at_start/at_end) @superlopuh (#1943)
- core: add arg_types param to Block.split_before @superlopuh (#1944)
- core: add helper for function type printing @superlopuh (#1926)
- core: add method for splitting block before a given operation @superlopuh (#1936)
- core: Register passes lazily @math-fehr (#1911)
- core: Add options to
walk
to control traversal order @math-fehr (#1904) - core: Add
\n
directives to assembly format @math-fehr (#1915) - core: Add a worklist for pattern rewriting @math-fehr (#1903)
- core: Add callbacks to the
Builder
@math-fehr (#1892) - core: Add methods to create blocks with the builder @math-fehr (#1891)
- core: Add constructors to
Builder
andInsertPoint
@math-fehr (#1890) - core: Expose InsertPoint class (NFC) @math-fehr (#1888)
Dialects
- dialects: Add memref.expand_shape and memref.collapse_shape ops @JosseVanDelm (#2036)
- dialects: (onnx) add onnx.Constant @kayode-gif (#2037)
- dialects: (riscv) remove SImm and replace with annotated IntegerAttr @superlopuh (#2055)
- dialects: (riscv_scv) Add reverse order for (rof) op @AntonLydike (#2048)
- dialects: (onnx) add onnx.Conv @kayode-gif (#1961)
- dialects: Define nontemporal properties on memref accesses. @PapyChacal (#2024)
- dialects: Switch memref accesses to assembly format @PapyChacal (#2023)
- dialects: (builtin) add
NoneType
@kayode-gif (#2016) - dialects: Import MemRefType from builtin. @PapyChacal (#2022)
- dialects: (onnx) add onnx.Abs @kayode-gif (#2012)
- dialects: (riscv_debug) add RISCV_Debug dialect with printf op @superlopuh (#1990)
- dialects: (onnx) add onnx.Reshape @kayode-gif (#1951)
- dialects: (snitch_stream) replace snitch_stream generic with streaming region @superlopuh (#1986)
- dialects: Add result arguments to func.func @JosseVanDelm (#1987)
- dialects: (onnx) factor out broadcastability helper in onnx dialect @kayode-gif (#1968)
- dialects: Add constant unitattr to global @JosseVanDelm (#1983)
- dialects: Implement affine.parallel @PapyChacal (#1979)
- dialects: Refresh Affine, add interoperability test. @PapyChacal (#1981)
- dialects: (riscv_snitch) add get_stream, read, write ops @superlopuh (#1970)
- dialects: (onnx) sort onnx ops alphabetically @kayode-gif (#1969)
- dialects: (onnx) lint onnx.py @superlopuh (#1966)
- dialects: (onnx) add onnx.Gemm @kayode-gif (#1945)
- dialects: (func) add support for arg_attrs in func.func @superlopuh (#1955)
- dialects: (riscv_cf) add riscv_cf dialect @superlopuh (#1946)
- dialects: (riscv_scf) add custom syntax to riscv_scf.while @superlopuh (#1934)
- dialects: (onnx) add onnx.Relu @kayode-gif (#1939)
- dialects: (scf) add custom syntax for scf while @superlopuh (#1927)
- dialects: (riscv_scf) add custom syntax for riscv_scf.condition @superlopuh (#1925)
- dialects: (scf) add custom syntax for scf.condition @superlopuh (#1924)
- dialects: (riscv) add fmv.d op @superlopuh (#1931)
- dialects: (arith) make binary ops pure @superlopuh (#1930)
- dialects (onnx): Initial onnx dialect support @brnorris03 (#1914)
- dialects (pdl): Add better verifiers to
pdl.pattern
@math-fehr (#1913) - dialects: (llvm) Make llvm.alloca's alignment property optional @PapyChacal (#1887)
- dialects: Update pdl dialect to leverage properties @martin-luecke (#1989)
- dialects: Add optional alignment property to memref.global @JosseVanDelm (#1976)
- dialects: Move MemRefType et al. to builtin. @PapyChacal (#1997)
Transformations
- transforms: (riscv) Add pattern to convert move of immediate value to immediate instantiation @AntonLydike (#2057)
- Add pass to set
fastmath
flags of FP binary operations fromarith
@compor (#2018) - backend: (riscv_cf) add convert-riscv-scf-to-riscv-cf @superlopuh (#1958)
- transforms: Canonicalize without the MLContext @math-fehr (#1912)
- transforms: (riscv_cf) Add canonicalization for branch ops with constant inputs @AntonLydike (#2049)
Backend
- Add fastmath flags to riscv dialect @compor (#2058)
- backend: (riscv) add automatic conversion of riscv_scf.for loop to ri… @superlopuh (#2033)
- backend: (riscv) add a pass to lower print_format to riscv_debug.printf @superlopuh (#1992)
- dialects: (snitch_stream) replace snitch_stream generic with streaming region @superlopuh (#1986)
- backend: (snitch) add iteration arguments to frep @superlopuh (#1982)
- backend: (snitch) read and write to streams in frep body @superlopuh (#1977)
- dialects: (riscv_snitch) add get_stream, read, write ops @superlopuh (#1970)
- backend: (riscv_cf) add convert-riscv-scf-to-riscv-cf @superlopuh (#1958)
- backend: (snitch_stream) add rank to stride pattern type @superlopuh (#1963)
- backend: (riscv) reserve iter arg from allocation inside of riscv_scf body @superlopuh (#1875)
- backend: (riscv) don't dce after lowering arith @superlopuh (#1877)
Interpreter
- interpreter: (affine) add interpreter impl for affine.apply @superlopuh (#2029)
- interpreter: (linalg) add support for reduction iterators for generic @superlopuh (#2020)
- interpreter: (riscv_debug) add implementation for riscv_debug.printf @superlopuh (#1998)
- interpreter: (riscv_snitch) add riscv_snitch functions @superlopuh (#1985)
- interpreter: add symbol parameter to xdsl-run @superlopuh (#1962)
- interpreter: (riscv_cf) add one more interpreter test @superlopuh (#1957)
- interpeter: (riscv_cf) add interpreter functions @superlopuh (#1956)
- interpreter: (linalg) allow scalar params for linalg generic @superlopuh (#1932)
- interpreter: (riscv) add interpreter impls for addi and fcvt.d.w @superlopuh (#1933)
- interpreter: (riscv_scf) add interpreter function for while op @superlopuh (#1923)
🗎 Documentation
- documentation: (Toy) add instruction on how to jit Toy using lli @superlopuh (#2002)
- documentation: (toy) remove unused printf lowering @superlopuh (#1999)
- documentation: (Toy) lower toy.print to print_format and printf @superlopuh (#1993)
- documentation: (toy) use riscv_cf in Toy @superlopuh (#1959)
- docs: Minor stencil docs improvement @georgebisbas (#1949)
- fix attribute docstring @jorendumoulin (#1909)
🐛 Bug Fixes
- core: make ParametrizedAttribute parameters a tuple @superlopuh (#2054)
- bug: fix AffineMap.inverse_permutation @superlopuh (#2019)
- backend: (riscv) reserve iter arg from allocation inside of riscv_scf body @superlopuh (#1875)
Testing
- testing: add tests for some kernels in the snitch backend paper @superlopuh (#2021)
- dialects: Import MemRefType from builtin. @PapyChacal (#2022)
- testing: (riscv) add test for riscemu emulation when lowering to riscv_cf @superlopuh (#1980)
- testing: (snitch) remove block names in test @superlopuh (#1929)
- test: update math tests' constructor @ShaolunWang (#1947)
Continuous Integration
- CI: Fix user name for api key @math-fehr (#1889)
- CI: Use PyPi token to publish package @math-fehr (#1886)
Installation
- pip prod(deps): bump ruff from 0.1.14 to 0.1.15 @dependabot (#2046)
- pip prod(deps): update pytest requirement from <8.0 to <9.0 @dependabot (#2035)
- pip prod(deps): bump pytest-asyncio from 0.23.3 to 0.23.4 @dependabot (#2034)
- pip prod(deps): bump ruff from 0.1.13 to 0.1.14 @dependabot (#1995)
- pip prod(deps): bump ruff from 0.1.12 to 0.1.13 @dependabot (#1975)
- pip prod(deps): bump ruff from 0.1.11 to 0.1.12 @dependabot (#1973)
- pip prod(deps): bump pyright from 1.1.344 to 1.1.345 @dependabot (#1953)
- pip dev(deps-dev): bump textual from 0.47.0 to 0.47.1 @dependabot (#1948)
- pip dev(deps-dev): bump textual from 0.46.0 to 0.47.0 @dependabot (#1941)
- pip prod(deps): bump textual-dev from 1.3.0 to 1.4.0 @dependabot (#1940)
- pip prod(deps): bump ruff from 0.1.9 to 0.1.11 @dependabot (#1937)
- pip prod(deps): bump pytest-asyncio from 0.23.2 to 0.23.3 @dependabot (#1935)
- pip prod(deps): bump pyright from 1.1.343 to 1.1.344 @dependabot (#1928)
- pip prod(deps): bump pyright from 1.1.342 to 1.1.343 @dependabot (#1916)
- pip prod(deps): bump ruff from 0.1.8 to 0.1.9 @dependabot (#1906)
- pip dev(deps-dev): bump wgpu from 0.13.1 to 0.13.2 @dependabot (#1907)
- pip prod(deps): bump pyright from 1.1.341 to 1.1.342 @dependabot (#1902)
- pip pr...