Skip to content

Releases: xdslproject/xdsl

v0.25.0

06 Dec 14:48
8e58c88
Compare
Choose a tag to compare

xDSL framework

Dialects

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

🗎 Documentation

  • documentation: add experimental features flag guide to README @superlopuh (#3567)

🐛 Bug Fixes

Continuous Integration

  • CI: add "tests" to extraPaths for Pyright to find conftest locally @superlopuh (#3571)

Installation

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

v0.24.0

28 Nov 17:04
c624080
Compare
Choose a tag to compare

xDSL framework

Dialects

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

Transformations

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

Backend

Interpreter

  • interpreter: (pdl) add the implementation of type interpretation @qaco (#3498)
  • interpreter: move ptr.py to utils folder @superlopuh (#3471)
  • interpreter: (pdl) add test for attribute matching @superlopuh (#3467)
  • interpreter: (pdl) add test for operation matching @superlopuh (#3466)
  • interpreter: (pdl) add test for result matching @superlopuh (#3465)
  • interpreter: (pdl) fix match_operand matchi...
Read more

v0.23.0

11 Oct 19:34
d1f33aa
Compare
Choose a tag to compare

xDSL framework

Dialects

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 to csl.import @dk949 (#3137)
  • transformations: Add pass to lower csl-stencil dialect @n-io (#3134)
  • transformations: from csl_wrapper to csl 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

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

Continuous Integration

Installation

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 (#...
Read more

v0.22.0

02 Sep 15:12
8a70781
Compare
Choose a tag to compare

xDSL framework

Dialects

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 from shape-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

API

🗎 Documentation

🐛 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

Read more

v0.21.1

23 Jul 22:51
e8339f3
Compare
Choose a tag to compare

xDSL framework

Dialects

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

🗎 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

Testing

Continuous Integration

  • ci: use uppercase I64, I32 etc as constraints in operation definitions @superlopuh (#2909)

Installation

Miscellaneous

  • (transform, minor): stencil-to-csl-stencil retain interesting compute structure property @n-io (#2926)
  • (transform): csl_stencil erase merged prefetch op @n-io (#2908)
  • dialects: (Qref) fix bug in cnot initialiser @alexarice (#2899)

v0.21.0

18 Jul 01:18
1da5f9f
Compare
Choose a tag to compare

xDSL framework

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

🗎 Documentation

🐛 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...
Read more

v0.20.0

06 Jun 12:30
a83b98b
Compare
Choose a tag to compare

xDSL framework

Dialects

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

🗎 Documentation

🐛 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

Installation

Read more

v0.19.0

02 May 14:51
702bcaa
Compare
Choose a tag to compare

Changes

xDSL framework

Dialects

Transformations

🗎 Documentation

🐛 Bug Fixes

Testing

Continuous Integration

Installation

Miscellaneous

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

17 Apr 16:30
8482c67
Compare
Choose a tag to compare

xDSL framework

Dialects

Transformations

Read more

v0.17

01 Feb 15:18
9a4b28c
Compare
Choose a tag to compare

Changes

xDSL framework

Dialects

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 from arith @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

🗎 Documentation

🐛 Bug Fixes

Testing

Continuous Integration

Installation

Read more