Skip to content

descript: roundtrip descript/scheduler#44

Open
qaco wants to merge 10 commits intoxtc-tools:mainfrom
qaco:hugo/tree
Open

descript: roundtrip descript/scheduler#44
qaco wants to merge 10 commits intoxtc-tools:mainfrom
qaco:hugo/tree

Conversation

@qaco
Copy link
Contributor

@qaco qaco commented Feb 1, 2026

Motivation

We know how to build a scheduler from descript, but we also want to build descript from a scheduler.

Description

  1. The flat representation is replaced by a tree structure (where children are created by splits).
  2. The parsing, the data structure and the interpretation are splitted in different files.
  3. The data structure (LoopNestNode) now embeds a pretty printer.
  4. A Scheduler can now build a LoopNest.
  5. The declarative DSL now exposes buffer_at
  6. The declarative DSL now exposes pack_at

@qaco qaco requested a review from guillon February 1, 2026 00:27
@qaco qaco self-assigned this Feb 1, 2026
@qaco qaco added the enhancement New feature or request label Feb 1, 2026
@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from 48fd73c to 2b101f7 Compare February 1, 2026 01:13
Copy link
Member

@guillon guillon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a possibility to make the LoopNest/LoopChild being even further redesigned into a single typical LoopNestTree structure, for instance with child/parent relationship?

@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from bb527e4 to e453e7d Compare February 1, 2026 04:22
@qaco
Copy link
Contributor Author

qaco commented Feb 1, 2026

Is there a possibility to make the LoopNest/LoopChild being even further redesigned into a single typical LoopNestTree structure, for instance with child/parent relationship?

Yeay done. With a generic tree structure

@qaco qaco force-pushed the hugo/tree branch 3 times, most recently from e413af6 to a3a86fd Compare February 1, 2026 10:47
@qaco qaco requested a review from guillon February 1, 2026 11:04
@qaco qaco marked this pull request as draft February 1, 2026 21:36
@qaco qaco force-pushed the hugo/tree branch 4 times, most recently from b0ce0b1 to c82295e Compare February 2, 2026 00:47
@qaco qaco changed the title descript: use a tree structure to represent a loop nest descript: roundtrip descript/scheduler Feb 2, 2026

# CHECK-SPLIT: loop i
# CHECK-SPLIT-NEXT: split(j, 0, 128)
# CHECK-SPLIT-NEXT: loop j
Copy link
Contributor Author

@qaco qaco Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orthogonally, here appears my splitting misconception spotted by @yadej ; the 'rematerialization' of j inside a branch is needed by the MLIR backend, but should not be exposed in descript or outside of the backend.

@qaco qaco marked this pull request as ready for review February 2, 2026 01:43
@qaco qaco force-pushed the hugo/tree branch 2 times, most recently from 54cba53 to 389e406 Compare February 2, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants