Skip to content

v0.18

Compare
Choose a tag to compare
@github-actions github-actions released this 17 Apr 16:30
· 990 commits to refs/heads/main since this release
8482c67

xDSL framework

Dialects

Transformations

  • dialects: Implement stencil.combine @PapyChacal (#2454)
  • dialects: Implement stencil.dyn_access, test it (and stencil.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: (convert-snrt-to-riscv) Add lowering for 2d dma calls @AntonLydike (#2422)
  • transformations: Add code for DMA 1D lowering. @cappadokes (#2420)
  • transformations: (onnx) lower onnx.MaxPoolSingleOut to linalg @kayode-gif (#2382)
  • transformations: Refine and enhance lowering Snitch runtime DMA operations to RISC-V @cappadokes (#2417)
  • transformations: Add convert-snrt-to-riscv-asm pass to lower snrt ops to RISC-V dialect @AntonLydike (#2411)
  • transformations: (test-lower-snitch-stream-to-asm) remove riscv-cse @superlopuh (#2386)
  • transformations: (test-lower-snitch-stream-to-asm) rename file [NFC] @superlopuh (#2385)
  • transformations: (reconcile-unrealized-casts) Disable warnings in pattern by default @Moxinilian (#2378)
  • transformations: (reconcile-unrealized-casts) Make cast reconciliation available as a pattern @Moxinilian (#2376)
  • transformations: (onnx) lower onnx.Gemm to linalg @kayode-gif (#2320)
  • transformations: fix memref stream conversion @superlopuh (#2309)
  • transformations: (mlir-opt) Add option to specify mlir-opt binary in args @AntonLydike (#2293)
  • transformations: add imperfect loop nest support in memref_stream.streaming_region @superlopuh (#2277)
  • transformations: (riscv-scf-loop-range-folding) add riscv.add support @superlopuh (#2263)
  • transformations: simplify stride patterns when lowering memref_stream @superlopuh (#2253)
  • (transformations): lower onnx.Reshape to linalg @kayode-gif (#2242)
  • (bug): update add op lowering to check for -1 not 1 @kayode-gif (#2246)
  • (transformations): lower onnx.Constant to linalg @kayode-gif (#2195)
  • transformations: insert function declarations only if called @superlopuh (#2211)
  • transformations: add riscv-cse @superlopuh (#2184)
  • transformations: (riscv_func) handle external function declarations @superlopuh (#2216)
  • transformations: scf-parallel-loop-tiling fixes. @PapyChacal (#2206)
  • transformations: Remove target argument from stencil conversion @PapyChacal (#2202)
  • transformations: Remove tiling and non-parallel loops from stencil conversion. @PapyChacal (#2199)
  • transformations: add "generic" parameter to MLIROptPass @superlopuh (#2193)
  • (transformations): lower onnx.Relu to linalg @kayode-gif (#2182)
  • transformations: add lowering from memref_stream generic to loops @superlopuh (#2151)
  • transformations: add memref-streamify @superlopuh (#2150)
  • transformation: (convert_onnx_to_linalg) add lowering from onnx.Add to linalg.add @kayode-gif (#2158)
  • transformations: add convert-linalg-to-memref-stream @superlopuh (#2149)
  • transformations: (memref_stream) add streaming_region lowering @superlopuh (#2147)
  • transformations: Make mlir-opt pass take the top-level module attributes into account. @PapyChacal (#2164)
  • transformations: (snitch_strem) factor out stride pattern ops lowering [NFC] @superlopuh (#2140)
  • transformations: Hoist pairs of memref loads and stores out of an scf.for loop @compor (#2135)
  • transformations: add lower-linalg-to-loops to xDSL @superlopuh (#2038)
  • transformations (riscv_scf): Change forwarded block args of riscv_cf.blt to use riscv_scf.yield operands when lowering from riscv_scf to riscv_cf @compor (#2085)
  • transformations: (scf) add SimplifyTrivialLoops pattern @superlopuh (#2062)
  • dialects (riscv): Add canonicalization pattern to fuse fmul.d and fadd.d to fmadd.d @compor (#2079)

Backend

  • backend: (csl) Add a print to csl backend @AntonLydike (#2344)
  • backend: (riscv) fix scf to riscv scf lowering @superlopuh (#2168)
  • testing: raise linalg snitch targets to func.func @superlopuh (#2157)
  • backend: (riscv) correctly handle f64 moves when lowering @superlopuh (#2156)
  • backend: (riscv) add convert-memref-stream-to-snitch pass @superlopuh (#2112)
  • backend: (riscv) automatically detect loops to convert to frep @superlopuh (#2108)
  • backend: (riscv) remove useless/buggy passes that used to help with ZERO register allocation @superlopuh (#2105)
  • backend: (riscv) allocate a constant value of 0 to ZERO register @superlopuh (#2103)
  • transformations (riscv_scf): Change forwarded block args of riscv_cf.blt to use riscv_scf.yield operands when lowering from riscv_scf to riscv_cf @compor (#2085)
  • dialects (riscv_cf): Allow float register types for block argument types @compor (#2083)
  • backend: (riscv) add a pass to rewrite li 0 to moving from zero register @superlopuh (#2076)
  • dialects (riscv): Add canonicalization pattern to fuse fmul.d and fadd.d to fmadd.d @compor (#2079)
  • backend: (riscv) no need to lower riscv func @superlopuh (#2074)
  • dialects (riscv): Fix missing attribute name from custom format @compor (#2075)

Interpreter

  • interpreter: (linalg) Add linalg.PoolingNchwMaxOp and linalg.Conv2DNchwFchwOp interpreter functions @kayode-gif (#2425)
  • interpreter: (onnx) Add rest of onnx operations for ONNX model MNIST targeting @kayode-gif (#2359)
  • interpreter: (linalg) Add linalg operations for ONNX model MNIST targeting @kayode-gif (#2355)
  • interpreter: (interpreter) Add check to see if operand count matches input count in run_op @kayode-gif (#2362)
  • interpreter: replace list data representation in shaped array with bytebuffer @superlopuh (#2287)
  • interpreter: pass interpreter instance to impl_attr @superlopuh (#2286)
  • interpreter: add xtype, a typed memory format string @superlopuh (#2285)
  • interpreter: (tensor) Add tensor operations for ONNX model MNIST targeting @kayode-gif (#2357)
  • interpreter: (ml_program) Add ml_program operations to target MNIST ONNX model @kayode-gif (#2348)
  • interpreter: (onnx) args should be casted to ShapedArray[float] not ShapedArray[int] @kayode-gif (#2350)
  • interpreter: (onnx) add elementwise onnx ops and onnx.relu @kayode-gif (#2338)
  • interpreter: (memref_stream) add interpreter implementation for memref_stream @superlopuh (#2290)
  • interpreter: prettify result printing @superlopuh (#2284)
  • interpreter: remove deallocated property on RawPtr @superlopuh (#2283)
  • interpreter: add args arg to xdsl-run for entry point function arguments @superlopuh (#2229)
  • interpreter: add value_for_attribute to interpreter @superlopuh (#2231)
  • interpreter: add index_bitwidth to interpreter @superlopuh (#2230)
  • interpreter: move RawPtr and TypedPtr to own file @superlopuh (#2183)
  • interpreter: add riscv_scf to xdsl-run @superlopuh (#2178)
  • interpreter: (riscv) add impl for riscv.sub @superlopuh (#2177)
  • interpreter: add infrastructure to collect interpreter traces @superlopuh (#2171)
  • interpreter: move comparisons to utils folder @superlopuh (#2086)

🗎 Documentation

🐛 Bug Fixes

  • 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: (builtin) Fix bound computation crash for i0 @Moxinilian (#2403)
  • core: Fix printing of non-identifier symbols @Moxinilian (#2369)
  • rewriting: Fix TypeConversionPattern recursive support for DictionaryAttr @Moxinilian (#2374)
  • 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)
  • interpreter: (onnx) args should be casted to ShapedArray[float] not ShapedArray[int] @kayode-gif (#2350)
  • dialects: (comb) Fix extract op @Moxinilian (#2327)
  • dialects: (comb) Fix concat op @Moxinilian (#2326)
  • bug: (onnx) fix onnx.Gemm @kayode-gif (#2323)
  • transformations: fix memref stream conversion @superlopuh (#2309)
  • dialects: reformat onnx.Constant to align with MNIST models one @kayode-gif (#2261)
  • (bug): update add op lowering to check for -1 not 1 @kayode-gif (#2246)
  • onnx.reshape should check for product not length @kayode-gif (#2241)
  • interactive: don't apply selected pass twice @superlopuh (#2236)
  • backend: (riscv) fix scf to riscv scf lowering @superlopuh (#2168)
  • backend: (riscv) correctly handle f64 moves when lowering @superlopuh (#2156)
  • dialects: (LLVM) Fix use of attributes dict when dialect specifies prop_def @ed741 (#2144)
  • dialects / bug : (linalg) linalg.generic constructor does not have a result types argument @kayode-gif (#2125)
  • dialects: (riscv) canonicalization should move constants not replace with li @superlopuh (#2104)
  • dialects: (riscv) don't canonicalize getting the zero register to li 0 @superlopuh (#2101)
  • dialects: (riscv) fix signedness in riscv @superlopuh (#2100)
  • transformations (riscv_scf): Change forwarded block args of riscv_cf.blt to use riscv_scf.yield operands when lowering from riscv_scf to riscv_cf @compor (#2085)
  • dialects (riscv): Fix missing attribute name from custom format @compor (#2075)

Testing

Continuous Integration

Installation

Miscellaneous

Interactive

  • interactive: fix bug - do not allow users to be able to select root node to be added to the pass pipeline @dshaaban01 (#2303)
  • interactive: don't print =none for None value @superlopuh (#2259)
  • interactive: don't reuse op already rewritten when getting individual rewrites @superlopuh (#2258)
  • interactive: don't apply selected pass twice @superlopuh (#2236)
  • interactive : add framework to support rewrite patterns that we do not want to be registered in xdsl canoncialization patterns @dshaaban01 (#2214)
  • interactive: add (multi-level tree) traversal functionality @dshaaban01 (#2225)
  • interactive: add helper function get_root_to_child_pass_list PR 5 @dshaaban01 (#2220)
  • testing: fix broken test in main @superlopuh (#2227)
  • interactive: remove passes that raise errors from condensed list @superlopuh (#2207)
  • interactive: make root of tree to change from input to last selected pass PR 4 @dshaaban01 (#2219)
  • interactive: add update_selected_passes_list_view helper function PR 3 @dshaaban01 (#2218)
  • interactive: make some structural changes that will help tree PR 2 @dshaaban01 (#2217)
  • interactive: change ListView to 1-level Tree PR 1 @dshaaban01 (#2215)
  • interactive: change "selected passes" widget from a label to a selection list (2) @dshaaban01 (#2205)
  • interactive: move buttons to RHS (1) @dshaaban01 (#2204)
  • interactive: pull out ctx generation into its own function @dshaaban01 (#2192)
  • interactive: take out pass application mechanism from app and put it into different file @dshaaban01 (#2190)
  • interactive: moves the rewrite to pass conversion from app.py into get_all_possibl… @dshaaban01 (#2187)
  • interactive: add rewrite functionality to gui tool 3/3 @dshaaban01 (#2155)
  • interactive: add attribute to PassListItem + make adjustments to affected functions 2/3 @dshaaban01 (#2153)
  • interactive: add AvailablePass NamedTuple and move code to new file for cleanliness 1/3 @dshaaban01 (#2152)
  • interactive: add function that returns all the possible rewrites in a given module (3/4) @dshaaban01 (#2130)
  • interactive: change input text so you can see example of a rewrite on gui launch @dshaaban01 (#2136)
  • interactive: add pass list item that holds the relevant module class @superlopuh (#2109)
  • interactive: adding an IndividualRewrite pass @dshaaban01 (#2093)
  • interactive: add file name to query @dshaaban01 (#2053)
  • interactive: add function that gets the available pass list given a module op, pass_pipeline and condense mode (3) @dshaaban01 (#2212)