Skip to content

[REFACTOR][Script] Give S-TIR its own construction namespace - #20437

Merged
tqchen merged 7 commits into
apache:mainfrom
tqchen:script/separate-stir-parser
Sep 25, 2026
Merged

tqchen merged 7 commits into
apache:mainfrom
tqchen:script/separate-stir-parser

Conversation

@tqchen

@tqchen tqchen commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Expose S-TIR through tvm.s_tir.script and from tvm.script import s_tir as Ts. Its Python and native builders own block construction, buffer normalization, function completion, and validation. Remove dialect mode switches from TIRx construction while sharing compatible operations through common frame hooks.

Give TIRx an independent compilation pipeline and keep S-TIR pipeline selection with S-TIR. Update printed scripts and namespace call sites, and make codegen and TIRx cases construct TIRx directly.

@tqchen
tqchen force-pushed the script/separate-stir-parser branch 3 times, most recently from 3d53918 to 0593ee3 Compare September 24, 2026 23:03
Expose scheduled TIR through tvm.s_tir.script and Ts.prim_func while sharing TIRx construction operations. Keep the TIRx entry dialect-specific and preserve S-TIR printer round trips through the separate namespace.
Move S-TIR frames, block operations, normalization, and completion into the S-TIR builder while sharing common primitive construction hooks. Remove dialect mode switches and give TIRx its own lowering path, with S-TIR registering its compilation policy.

Migrate namespace call sites and express codegen and TIRx cases directly in TIRx, preserving S-TIR-specific coverage alongside its dialect.
Disambiguate member template calls in the shared allreduce builder so template parsing works across compilers.
@tqchen
tqchen merged commit 7188215 into apache:main Sep 25, 2026
8 checks passed
tqchen pushed a commit that referenced this pull request Oct 3, 2026
## Description

The grid-pack guard regression test added in #20424 uses TIRx syntax
that had already been replaced on `main`:

- #20437 removed the `s_tir=True` arguments from TIRx decorators.
- #20519 renamed the TIRx parameter annotation from `T.Buffer` to
`T.Tensor`.

As a result, the current CPU CI fails during test collection with:

```text
AttributeError: No script namespace 'Buffer'
```

This test-only change updates the new test to the current TIRx syntax.
The WebGPU test body and generated-code assertion are unchanged.

The same upstream failure is currently blocking unrelated PRs #20529 and
#20535.

## Testing

- `python -m py_compile
tests/python/codegen/test_target_codegen_webgpu.py`
- `python -m pre_commit run --files
tests/python/codegen/test_target_codegen_webgpu.py`

A matching current-`main` native library was not available locally, so
the targeted WebGPU runtime test is left to CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants