Releases: xdslproject/xdsl
Releases Β· xdslproject/xdsl
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...
v0.16.0
Changes
xDSL framework
- core: make ConstraintVar frozen @superlopuh (#1876)
- core: correct
__str__
/__repr__
usage in ParseError @PapyChacal (#1872) - core: add ability to parse MLIR IR that drops dialect names from operations @superlopuh (#1840)
- core: Allow multiple inheritance when one parent is generic @math-fehr (#1794)
- core: Fix scalar memref printing. @PapyChacal (#1754)
- core: implement EnumAttribute @PapyChacal (#1749)
- core: Implement dialect attribute opaque syntax. @PapyChacal (#1726)
- core: Remove hardcoded angle brackets from Data printing/parsing. @PapyChacal (#1724)
- core: fix parsing of tensors containing negative values @superlopuh (#1721)
- core: add AbstractYieldOperation and use in riscv-scf @superlopuh (#1723)
- core: (traits) Add
insert_or_update
method to SymbolTable @AntonLydike (#1652) - core: Implement AffineSetAttr @PapyChacal (#1714)
- core: (affine) bring over definitions of AffineMap.compose and AffineExpr.compose @superlopuh (#1709)
- dialects: (scf) Allow implicit terminator (
yield
op) inscf.for
operation @compor (#1607) - core: Remove duplicated methods @math-fehr (#1716)
- core: Name dialects and make then citizens of MLContext. @PapyChacal (#1711)
- core: (affine_map) add a convenience affine map constructor with lambda @superlopuh (#1686)
- core: add PassPipelinePass with optional callback in between passes @superlopuh (#1684)
- core: (affine) add AffineMap.transpose_map @superlopuh (#1675)
- core: affine map eval takes sequences not lists @superlopuh (#1681)
- core: Rename register_* with load_* @math-fehr (#1663)
- core: Add results in declarative format @math-fehr (#1666)
Dialects
- dialects: Switch math to properties. @PapyChacal (#1881)
- dialects: LLVM updates. @PapyChacal (#1882)
- dialects (arith): Add arith.addui_extended operation @math-fehr (#1826)
- dialects: Use IntAttr in Vector/Tensor/MemRef types @math-fehr (#1825)
- dialects: Add missing verifiers for PDL operations @math-fehr (#1830)
- dialects: switch llvm to properties. @PapyChacal (#1874)
- dialects: Refactor and improve llvm type parsing. @PapyChacal (#1873)
- dialects: (linalg) add custom format to linalg.generic @superlopuh (#1843)
- transformations: Implement unrolled stencil conversion @PapyChacal (#1852)
- dialects: Implement affine.min. @PapyChacal (#1847)
- dialects: (memref) add alloc(a) dynamic dimension support @jorendumoulin (#1856)
- transforms: implement gpu-map-parallel-loops @PapyChacal (#1846)
- dialects: (memref) Add canonicalize pattern for subviews of subviews @AntonLydike (#1829)
- misc: Bump MLIR to 98e674c9f16d677d95c67bc130e267fae331e43c. @PapyChacal (#1824)
- dialects: (riscv_snitch) add FrepYieldOp to dialect definition @superlopuh (#1792)
- dialects: (riscv) add ability to fld from label @superlopuh (#1797)
- dialect: (riscv_snitch) prettify frep custom syntax @superlopuh (#1791)
- dialects: Add binary arithmetic llvm operations @math-fehr (#1812)
- dialects: (riscv) add double-precision fmadd and fmsub @superlopuh (#1790)
- dialects: (scf) Allow signless integers as induction variable types for
scf.for
@compor (#1727) - dialects: Add memref.memory_space_cast @jorendumoulin (#1782)
- dialects: (hw) Add InnerSymTarget class to HW dialect @lucjaulmes (#1758)
- dialects: (scf) Revamp
scf.for
verification logic and messages @compor (#1725) - dialects : Implement omp.parallel @PapyChacal (#1755)
- dialects: Implement memref.alloca_scope and memref.alloca_scope.return. @PapyChacal (#1756)
- dialects: Correct affine.for verifier. @PapyChacal (#1753)
- dialects: fix support for fastmath in some arith ops. @PapyChacal (#1751)
- dialects: implement affine.apply @PapyChacal (#1752)
- dialects: Implement omp.wsloop @PapyChacal (#1750)
- dialects: (hw) Implement HW dialect starting with InnerRefAttr @lucjaulmes (#1708)
- dialects: (scf) Use abstract yield operation in
scf.yield
@compor (#1737) - dialects: (linalg) Use abstract yield operation in
linalg.yield
@compor (#1735) - dialects: (riscv) add fmin.d and fmax.d and lower from arith @superlopuh (#1732)
- dialects: Implement affine.if @PapyChacal (#1715)
- core: Implement AffineSetAttr @PapyChacal (#1714)
- dialects: Replacing get with init in mpi dialect and respective places @ShaolunWang (#1713)
- dialects: (scf) Allow implicit terminator (
yield
op) inscf.for
operation @compor (#1607) - dialects: (riscv) omit ": () -> ()" for riscv ops @superlopuh (#1707)
- dialects: (riscv) assembly section op creates a valid region in init @superlopuh (#1697)
- dialects: (gpu) Elide returns in init methods @compor (#1694)
- dialects: (scf, riscv_scf) Use lazy traits support @compor (#1693)
- dialects: (memref) add attributes in memref store load custom syntax @superlopuh (#1688)
- dialects: (linalg) add custom syntax to linalg.yield @superlopuh (#1690)
- dialects: (stream) add stream dialect with basic ops @superlopuh (#1679)
- dialects: (riscv) don't print op type for NullaryOp @superlopuh (#1683)
- dialects: (dmp) cleanup @AntonLydike (#1290)
- dialects: Add and-bitwise rewrite pattern @alecerio (#1665)
- dialects: Add LTL dialect (AndOp, Sequence and Property types) @luisacicolini (#1659)
- dialects: (memref) add layout and memory space support in memref.alloc(a) @jorendumoulin (#1784)
Transformations
- interpreter: don't use wgpu interpreter functions for constant folding @superlopuh (#1878)
- transformations: Implement stencil unrolling @PapyChacal (#1853)
- transformations: Implement unrolled stencil conversion @PapyChacal (#1852)
- transforms: Implement scf-parallel-loop-tiling @PapyChacal (#1848)
- transforms: implement gpu-map-parallel-loops @PapyChacal (#1846)
- transformations: add interepreter-based contant folding pass @superlopuh (#1599)
- transforms: (dmp) Add a 3D domain decomposition (with n-d generalization) @AntonLydike (#1672)
- transformations: Implement convert-scf-to-openmp @PapyChacal (#1771)
- backend: (riscv) Exclude FP registers from RISC-V regalloc in the presence of
snitch_stream
IO ops @compor (#1786)
Backend
- backend: (riscv) fix function lowering with mixed floats and ints @superlopuh (#1837)
- backend: (riscv) add mechansim to reserve and unreserve registers @superlopuh (#1839)
- backend: (riscv) support any memref shape for access lowering @superlopuh (#1836)
- backend: (riscv) Exclude FP registers from RISC-V regalloc in the presence of
snitch_stream
IO ops @compor (#1786) - backend: (riscv) add riscv.fcvt.d.w and riscv.fcvt.d.wu ops (v2) @superlopuh (#1746)
- backend: (snitch) add snitch register allocation @superlopuh (#1741)
- backend: (riscv) add convert-snitch-stream-to-snitch @superlopuh (#1718)
- backend: (riscv) add a snitch_stream dialect to represent the highest-level snitch-specific operations @superlopuh (#1706)
- backend: (riscv) SsrSetStreamConfigOperation has dm attr instead of stream operand @superlopuh (#1703)
- backend: (riscv) make dimension an IntAttr in snitch ops @superlopuh (#1702)
- backend: (riscv) add lowering for memref global ops @superlopuh (#1700)
- backend: (riscv) Add canonicalization pattern for AddImmediateConstant @superlopuh (#1695)
- backend: (riscv) remove lower-snrt-to-func pass @superlopuh (#1687)
- backend (riscv): Factor out Snitch ISA extensions @compor (#1685)
- backend: (riscv) split logic for casting operands to regs @superlopuh (#1678)
- backend: (riscv) add 1d, 3d, and 4d snitch stream lowerings @superlopuh (#1781)
Interpreter
- interpreter: don't use wgpu interpreter functions for constant folding @superlopuh (#1878)
- interpreter: (arith) add minf and maxf @superlopuh (#1720)
- interpreter: (snitch_stream) add SnitchStreamInterpreterFunctions @superlopuh (#1710)
- interpreter: (riscv) gather data from all .data sections @superlopuh (#1698)
- interpreter: (riscv) add cast from float reg to float @superlopuh (#1699)
- interpreter: add verbose flag to print Python results @superlopuh (#1689)
- interpreter: (linalg) add interpreter functions for generic and yield @superlopuh (#1677)
- interpreter: (stream) add stream interpreter functions @superlopuh (#1680)
- interpreter: (riscv) add interpreter function for riscv.fmv @superlopuh (#1669)
- interpreter: shaped array accepts any sequence of ints as index @superlopuh (#1668)
API
- interactive: add test to count_number_of_ops @dshaaban01 (#1862)
- misc: Add a version flag to xdsl @AntonLydike (#1785)
- api: added clone function in core.py @dshaaban01 (#1743)
- dialects: Replacing get with init in mpi dialect and respective places @ShaolunWang (#1713)
π Bug Fixes
- interpreter: don't use wgpu interpreter functions for constant folding @superlopuh (#1878)
- misc: make VSCode Pylance happy with int type @superlopuh (#1879)
- dialects: (riscv_snitch) add FrepYieldOp to dialect definition @superlopuh (#1792)
Testing
- testing: remove empty filecheck test @superlopuh (#1838)
- tests: Add a test construct of a simple stencil dialect use in CI @georgebisbas (#1081)
- testing: add a filecheck interpreter test for snst relu @superlopuh (#1734)
- testing: add a filecheck interpreter test for snst dsum @superlopuh (#1733)
- testing: add a runtime test for relu of a memref @superlopuh (#1722)
- testing: make fewer tests fail if riscemu is not installed @superlopuh (#1717)
- testing: (riscv) add missing return values @superlopuh (#1667)
Continuous Integration
- misc: Bump MLIR to 98e674c9f16d677d95c67bc130e267fae331e43c. @PapyChacal (#1824)
- ci: Add Interactive to release-drafter.yml @dshaaban01 (#1762)
Installation
- pip dev(deps-dev): update immutabledict requirement from <4.0.1 to <4.1.1 @dependabot (#1885)
- pip prod(deps): bump pyright from 1.1.340 to 1.1.341 @dependabot (#1883)
- pip dev(deps-dev): bump textual from 0.45.1 to 0.46.0 @dependabot (#1884)
- pip prod(deps): bump pyright...
ASPLOS'24 accepted
This version contains the xdsl source code used for the experiments in DOI: 10.1145/3620666.3651344