There is a newer version of the record available.

Published June 6, 2024 | Version v0.20.0

xdslproject/xdsl: v0.20.0

Description

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 to PatternRewriter @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 and color, as well as some layout 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 textual from 0.60.0 to 0.60.1 @dependabot (#2601)
  • pip prod(deps): bump textual from 0.59.0 to 0.60.0 @dependabot (#2587)
  • dependencies: Update riscemu to 2.2.6 @AntonLydike (#2584)
  • pip prod(deps): bump wgpu from 0.15.1 to 0.15.2 @dependabot (#2582)
  • pip prod(deps): bump textual from 0.58.1 to 0.59.0 @dependabot (#2566)
  • pip prod(deps): bump pre-commit from 3.7.0 to 3.7.1 @dependabot (#2567)
  • installation: Add nix flake @alexarice (#2554)
  • pip prod(deps): bump ruff from 0.4.3 to 0.4.4 @dependabot (#2556)
  • pip prod(deps): bump ruff from 0.4.2 to 0.4.3 @dependabot (#2541)

Miscellaneous

  • misc: Implement and test dynamic IRDL dialect registering. @PapyChacal (#2654)
  • transformations: Stencil shape inference fixes @PapyChacal (#2595)
  • misc: TestLowerSnitchStreamToAsm inherits from PipelinePass [NFC] @superlopuh (#2546)
  • misc: print offending op in IsolatedFromAbove trait verification error @superlopuh (#2569)
  • installation: Add nix flake @alexarice (#2554)
  • core: Strip multi-digit suffixes in name_hint, not only single-digit. @PapyChacal (#2551)
  • transformations: Implement and test memref-to-gpu. @PapyChacal (#2542)

Interactive

  • interactive: some minor typing fixes in xdsl-gui @superlopuh (#2649)
  • interactive: check for missing required fields before updating pipeline @superlopuh (#2557)

Files

xdslproject/xdsl-v0.20.0.zip

Files (1.2 MB)

Name Size Download all
md5:b7e66938ce50c9c335335d37311df8dc
1.2 MB Preview Download

Additional details

Related works