Skip to content

Commit bb55529

Browse files
Update docs
1 parent fd85188 commit bb55529

File tree

5 files changed

+65
-2
lines changed

5 files changed

+65
-2
lines changed

_sources/autoapi/tilelang/utils/language/index.rst.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ Functions
2626
tilelang.utils.language.retrieve_ptr
2727
tilelang.utils.language.retrieve_offset
2828
tilelang.utils.language.prim_expr_equal
29+
tilelang.utils.language.legalize_pairwise_extents
2930
tilelang.utils.language.is_full_region
3031

3132

@@ -190,6 +191,27 @@ Module Contents
190191
Python ints are converted to IntImm for comparison.
191192

192193

194+
.. py:function:: legalize_pairwise_extents(src_extents, dst_extents)
195+
196+
Right-align and broadcast two extent lists to be mutually compatible.
197+
198+
Early-exit rule:
199+
- If the number of non-1 dimensions in `src_extents` equals that in `dst_extents`,
200+
no adjustment is made; the original extents are returned unchanged. This
201+
preserves the per-dimension iteration mapping (one loop var per non-1 dim)
202+
and avoids creating extra varying axes on either side.
203+
204+
Otherwise, for each pair of tail-aligned dimensions (x, y):
205+
- if x == y: keep both
206+
- elif x == 1: set x = y
207+
- elif y == 1: set y = x
208+
- else: promote both to tir.max(x, y) to handle dynamic-vs-static safely
209+
210+
Leading unmatched dimensions are kept as-is.
211+
212+
Returns a tuple of new lists (src_new, dst_new).
213+
214+
193215
.. py:function:: is_full_region(buffer_region)
194216
195217
Check whether a BufferRegion covers the full buffer region.

autoapi/tilelang/utils/language/index.html

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,10 @@ <h2>Functions<a class="headerlink" href="#functions" title="Link to this heading
548548
<tr class="row-odd"><td><p><a class="reference internal" href="#tilelang.utils.language.prim_expr_equal" title="tilelang.utils.language.prim_expr_equal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">prim_expr_equal</span></code></a>(lhs, rhs)</p></td>
549549
<td><p>Robust equality for PrimExpr shapes/extents.</p></td>
550550
</tr>
551-
<tr class="row-even"><td><p><a class="reference internal" href="#tilelang.utils.language.is_full_region" title="tilelang.utils.language.is_full_region"><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_full_region</span></code></a>(buffer_region)</p></td>
551+
<tr class="row-even"><td><p><a class="reference internal" href="#tilelang.utils.language.legalize_pairwise_extents" title="tilelang.utils.language.legalize_pairwise_extents"><code class="xref py py-obj docutils literal notranslate"><span class="pre">legalize_pairwise_extents</span></code></a>(src_extents, dst_extents)</p></td>
552+
<td><p>Right-align and broadcast two extent lists to be mutually compatible.</p></td>
553+
</tr>
554+
<tr class="row-odd"><td><p><a class="reference internal" href="#tilelang.utils.language.is_full_region" title="tilelang.utils.language.is_full_region"><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_full_region</span></code></a>(buffer_region)</p></td>
552555
<td><p>Check whether a BufferRegion covers the full buffer region.</p></td>
553556
</tr>
554557
</tbody>
@@ -859,6 +862,41 @@ <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to
859862
</dl>
860863
</dd></dl>
861864

865+
<dl class="py function">
866+
<dt class="sig sig-object py" id="tilelang.utils.language.legalize_pairwise_extents">
867+
<span class="sig-prename descclassname"><span class="pre">tilelang.utils.language.</span></span><span class="sig-name descname"><span class="pre">legalize_pairwise_extents</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">src_extents</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dst_extents</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.utils.language.legalize_pairwise_extents" title="Link to this definition"></a></dt>
868+
<dd><p>Right-align and broadcast two extent lists to be mutually compatible.</p>
869+
<p>Early-exit rule:
870+
- If the number of non-1 dimensions in <cite>src_extents</cite> equals that in <cite>dst_extents</cite>,</p>
871+
<blockquote>
872+
<div><p>no adjustment is made; the original extents are returned unchanged. This
873+
preserves the per-dimension iteration mapping (one loop var per non-1 dim)
874+
and avoids creating extra varying axes on either side.</p>
875+
</div></blockquote>
876+
<dl class="simple">
877+
<dt>Otherwise, for each pair of tail-aligned dimensions (x, y):</dt><dd><ul class="simple">
878+
<li><p>if x == y: keep both</p></li>
879+
<li><p>elif x == 1: set x = y</p></li>
880+
<li><p>elif y == 1: set y = x</p></li>
881+
<li><p>else: promote both to tir.max(x, y) to handle dynamic-vs-static safely</p></li>
882+
</ul>
883+
</dd>
884+
</dl>
885+
<p>Leading unmatched dimensions are kept as-is.</p>
886+
<p>Returns a tuple of new lists (src_new, dst_new).</p>
887+
<dl class="field-list simple">
888+
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
889+
<dd class="field-odd"><ul class="simple">
890+
<li><p><strong>src_extents</strong> (<em>list</em>)</p></li>
891+
<li><p><strong>dst_extents</strong> (<em>list</em>)</p></li>
892+
</ul>
893+
</dd>
894+
<dt class="field-even">Return type<span class="colon">:</span></dt>
895+
<dd class="field-even"><p>tuple[list, list]</p>
896+
</dd>
897+
</dl>
898+
</dd></dl>
899+
862900
<dl class="py function">
863901
<dt class="sig sig-object py" id="tilelang.utils.language.is_full_region">
864902
<span class="sig-prename descclassname"><span class="pre">tilelang.utils.language.</span></span><span class="sig-name descname"><span class="pre">is_full_region</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buffer_region</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tilelang.utils.language.is_full_region" title="Link to this definition"></a></dt>
@@ -956,6 +994,7 @@ <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to
956994
<li><a class="reference internal" href="#tilelang.utils.language.retrieve_ptr"><code class="docutils literal notranslate"><span class="pre">retrieve_ptr()</span></code></a></li>
957995
<li><a class="reference internal" href="#tilelang.utils.language.retrieve_offset"><code class="docutils literal notranslate"><span class="pre">retrieve_offset()</span></code></a></li>
958996
<li><a class="reference internal" href="#tilelang.utils.language.prim_expr_equal"><code class="docutils literal notranslate"><span class="pre">prim_expr_equal()</span></code></a></li>
997+
<li><a class="reference internal" href="#tilelang.utils.language.legalize_pairwise_extents"><code class="docutils literal notranslate"><span class="pre">legalize_pairwise_extents()</span></code></a></li>
959998
<li><a class="reference internal" href="#tilelang.utils.language.is_full_region"><code class="docutils literal notranslate"><span class="pre">is_full_region()</span></code></a></li>
960999
</ul>
9611000
</li>

genindex.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3396,6 +3396,8 @@ <h2>L</h2>
33963396
<li><a href="autoapi/tilelang/intrinsics/mma_layout/index.html#tilelang.intrinsics.mma_layout.ldmatrix_trans_32x8_to_shared_16x16_layout">ldmatrix_trans_32x8_to_shared_16x16_layout() (in module tilelang.intrinsics.mma_layout)</a>
33973397
</li>
33983398
<li><a href="autoapi/tilelang/common/transform_kind/index.html#tilelang.common.transform_kind.TransformKind.LDMatrixTransform">LDMatrixTransform (tilelang.common.transform_kind.TransformKind attribute)</a>
3399+
</li>
3400+
<li><a href="autoapi/tilelang/utils/language/index.html#tilelang.utils.language.legalize_pairwise_extents">legalize_pairwise_extents() (in module tilelang.utils.language)</a>
33993401
</li>
34003402
<li><a href="autoapi/tilelang/transform/index.html#tilelang.transform.LegalizeNegativeIndex">LegalizeNegativeIndex() (in module tilelang.transform)</a>
34013403
</li>

objects.inv

18 Bytes
Binary file not shown.

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)