Skip to content

fix(ir): avoid recursive isl range traversal - #184

Merged
zhen8838 merged 2 commits into
tile-ai:mainfrom
zhen8838:fix/isl-single-traversal
Sep 24, 2026
Merged

zhen8838 merged 2 commits into
tile-ai:mainfrom
zhen8838:fix/isl-single-traversal

Conversation

@zhen8838

Copy link
Copy Markdown
Collaborator

Why

What

  • Use one bottom-up dimension visitor for isl rendering and parameter-bound collection.
  • Derive finite ranges from the rendered isl expression and retain interval arithmetic only for opaque non-affine multiplication.
  • Prove parameter-independent constant subexpressions with isl and emit their integer value before multiplication, preserving mesh-coordinate dependence.
  • Exercise the reported inline floor-division form in the existing persistent GEMM fixture.

Contract

  • Public signatures and half-open range semantics are unchanged.
  • Symbolic divisors remain unsupported, and non-affine products remain opaque parameters with conservative bounds.

Risk

  • None.

Comment thread src/tilefoundry/ir/isl_interop.py Outdated
Comment thread src/tilefoundry/ir/isl_interop.py Outdated
Comment thread tests/fixtures/placed/persistent_gemm_tiled.py
@zhen8838
zhen8838 merged commit e401b26 into tile-ai:main Sep 24, 2026
1 check passed
@zhen8838
zhen8838 deleted the fix/isl-single-traversal branch September 24, 2026 04:50
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.

parser: tile() bound cta.x * (M // BX) recurses until RecursionError (dim_to_isl_expr <-> dim_range)

1 participant