Skip to content

Releases: xdslproject/xdsl

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

v0.16.0

18 Dec 14:25
705eb8c
Compare
Choose a tag to compare

Changes

xDSL framework

Dialects

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

API

πŸ› 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

Continuous Integration

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

ASPLOS'24 accepted

22 Mar 17:47
Compare
Choose a tag to compare

This version contains the xdsl source code used for the experiments in DOI: 10.1145/3620666.3651344