@@ -568,43 +568,46 @@ <h2>Functions<a class="headerlink" href="#functions" title="Link to this heading
568568< tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_tma_and_warp_specialized " title ="tilelang.engine.phase.allow_tma_and_warp_specialized "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_tma_and_warp_specialized</ span > </ code > </ a > ([pass_ctx, target])</ p > </ td >
569569< td > < p > </ p > </ td >
570570</ tr >
571- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_fence_proxy " title ="tilelang.engine.phase.allow_fence_proxy "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_fence_proxy</ span > </ code > </ a > ([target])</ p > </ td >
571+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_tma_lower " title ="tilelang.engine.phase.allow_tma_lower "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_tma_lower</ span > </ code > </ a > ([pass_ctx, target])</ p > </ td >
572+ < td > < p > Return True when TMA lowering is enabled for the given target.</ p > </ td >
573+ </ tr >
574+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_fence_proxy " title ="tilelang.engine.phase.allow_fence_proxy "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_fence_proxy</ span > </ code > </ a > ([target])</ p > </ td >
572575< td > < p > </ p > </ td >
573576</ tr >
574- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_vectorize " title ="tilelang.engine.phase.allow_vectorize "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_vectorize</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
577+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_vectorize " title ="tilelang.engine.phase.allow_vectorize "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_vectorize</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
575578< td > < p > </ p > </ td >
576579</ tr >
577- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_global_thread_synchronization " title ="tilelang.engine.phase.allow_global_thread_synchronization "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_global_thread_synchronization</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
580+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.allow_global_thread_synchronization " title ="tilelang.engine.phase.allow_global_thread_synchronization "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> allow_global_thread_synchronization</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
578581< td > < p > </ p > </ td >
579582</ tr >
580- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_aggressive_merge " title ="tilelang.engine.phase.should_enable_aggressive_merge "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_aggressive_merge</ span > </ code > </ a > ([pass_ctx, target])</ p > </ td >
583+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_aggressive_merge " title ="tilelang.engine.phase.should_enable_aggressive_merge "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_aggressive_merge</ span > </ code > </ a > ([pass_ctx, target])</ p > </ td >
581584< td > < p > </ p > </ td >
582585</ tr >
583- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_force_let_inline " title ="tilelang.engine.phase.should_force_let_inline "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_force_let_inline</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
586+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_force_let_inline " title ="tilelang.engine.phase.should_force_let_inline "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_force_let_inline</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
584587< td > < p > </ p > </ td >
585588</ tr >
586- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_ast_print " title ="tilelang.engine.phase.should_enable_ast_print "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_ast_print</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
589+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_ast_print " title ="tilelang.engine.phase.should_enable_ast_print "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_ast_print</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
587590< td > < p > </ p > </ td >
588591</ tr >
589- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_layout_visual " title ="tilelang.engine.phase.should_enable_layout_visual "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_layout_visual</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
592+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_layout_visual " title ="tilelang.engine.phase.should_enable_layout_visual "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_layout_visual</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
590593< td > < p > </ p > </ td >
591594</ tr >
592- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_race_check " title ="tilelang.engine.phase.should_enable_race_check "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_race_check</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
595+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.should_enable_race_check " title ="tilelang.engine.phase.should_enable_race_check "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> should_enable_race_check</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
593596< td > < p > </ p > </ td >
594597</ tr >
595- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.get_layout_visual_formats " title ="tilelang.engine.phase.get_layout_visual_formats "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> get_layout_visual_formats</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
598+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.get_layout_visual_formats " title ="tilelang.engine.phase.get_layout_visual_formats "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> get_layout_visual_formats</ span > </ code > </ a > ([pass_ctx])</ p > </ td >
596599< td > < p > </ p > </ td >
597600</ tr >
598- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.LayoutVisual " title ="tilelang.engine.phase.LayoutVisual "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> LayoutVisual</ span > </ code > </ a > (mod)</ p > </ td >
601+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.LayoutVisual " title ="tilelang.engine.phase.LayoutVisual "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> LayoutVisual</ span > </ code > </ a > (mod)</ p > </ td >
599602< td > < p > Apply layout visualization pass if enabled.</ p > </ td >
600603</ tr >
601- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.PreLowerSemanticCheck " title ="tilelang.engine.phase.PreLowerSemanticCheck "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> PreLowerSemanticCheck</ span > </ code > </ a > (mod)</ p > </ td >
604+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.PreLowerSemanticCheck " title ="tilelang.engine.phase.PreLowerSemanticCheck "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> PreLowerSemanticCheck</ span > </ code > </ a > (mod)</ p > </ td >
602605< td > < p > Check whether the module is valid before lowering. If not, raise a user-friendly error</ p > </ td >
603606</ tr >
604- < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.LowerAndLegalize " title ="tilelang.engine.phase.LowerAndLegalize "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> LowerAndLegalize</ span > </ code > </ a > (mod, target)</ p > </ td >
607+ < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.LowerAndLegalize " title ="tilelang.engine.phase.LowerAndLegalize "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> LowerAndLegalize</ span > </ code > </ a > (mod, target)</ p > </ td >
605608< td > < p > Bind target information and progressively legalize and lower frontend Tile IR into a form suitable for downstream optimization and codegen.</ p > </ td >
606609</ tr >
607- < tr class ="row-odd "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.OptimizeForTarget " title ="tilelang.engine.phase.OptimizeForTarget "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> OptimizeForTarget</ span > </ code > </ a > (mod, target)</ p > </ td >
610+ < tr class ="row-even "> < td > < p > < a class ="reference internal " href ="#tilelang.engine.phase.OptimizeForTarget " title ="tilelang.engine.phase.OptimizeForTarget "> < code class ="xref py py-obj docutils literal notranslate "> < span class ="pre "> OptimizeForTarget</ span > </ code > </ a > (mod, target)</ p > </ td >
608611< td > < p > </ p > </ td >
609612</ tr >
610613</ tbody >
@@ -645,6 +648,26 @@ <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to
645648</ dl >
646649</ dd > </ dl >
647650
651+ < dl class ="py function ">
652+ < dt class ="sig sig-object py " id ="tilelang.engine.phase.allow_tma_lower ">
653+ < span class ="sig-prename descclassname "> < span class ="pre "> tilelang.engine.phase.</ span > </ span > < span class ="sig-name descname "> < span class ="pre "> allow_tma_lower</ span > </ span > < span class ="sig-paren "> (</ span > < em class ="sig-param "> < span class ="n "> < span class ="pre "> pass_ctx</ span > </ span > < span class ="o "> < span class ="pre "> =</ span > </ span > < span class ="default_value "> < span class ="pre "> None</ span > </ span > </ em > , < em class ="sig-param "> < span class ="n "> < span class ="pre "> target</ span > </ span > < span class ="o "> < span class ="pre "> =</ span > </ span > < span class ="default_value "> < span class ="pre "> None</ span > </ span > </ em > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#tilelang.engine.phase.allow_tma_lower " title ="Link to this definition "> ¶</ a > </ dt >
654+ < dd > < p > Return True when TMA lowering is enabled for the given target.</ p >
655+ < p > This is intentionally decoupled from warp specialization so Hopper TMA can
656+ be used in a non-warp-specialized pipeline (e.g., no-WS kernels still need
657+ mbarrier allocation/init and expect_tx injection).</ p >
658+ < dl class ="field-list simple ">
659+ < dt class ="field-odd "> Parameters< span class ="colon "> :</ span > </ dt >
660+ < dd class ="field-odd "> < ul class ="simple ">
661+ < li > < p > < strong > pass_ctx</ strong > (< em > tilelang.transform.PassContext</ em > < em > | </ em > < em > None</ em > )</ p > </ li >
662+ < li > < p > < strong > target</ strong > (< em > tvm.target.Target</ em > < em > | </ em > < em > None</ em > )</ p > </ li >
663+ </ ul >
664+ </ dd >
665+ < dt class ="field-even "> Return type< span class ="colon "> :</ span > </ dt >
666+ < dd class ="field-even "> < p > < a class ="reference internal " href ="../../language/dtypes/index.html#tilelang.language.dtypes.bool " title ="tilelang.language.dtypes.bool "> bool</ a > </ p >
667+ </ dd >
668+ </ dl >
669+ </ dd > </ dl >
670+
648671< dl class ="py function ">
649672< dt class ="sig sig-object py " id ="tilelang.engine.phase.allow_fence_proxy ">
650673< span class ="sig-prename descclassname "> < span class ="pre "> tilelang.engine.phase.</ span > </ span > < span class ="sig-name descname "> < span class ="pre "> allow_fence_proxy</ span > </ span > < span class ="sig-paren "> (</ span > < em class ="sig-param "> < span class ="n "> < span class ="pre "> target</ span > </ span > < span class ="o "> < span class ="pre "> =</ span > </ span > < span class ="default_value "> < span class ="pre "> None</ span > </ span > </ em > < span class ="sig-paren "> )</ span > < a class ="headerlink " href ="#tilelang.engine.phase.allow_fence_proxy " title ="Link to this definition "> ¶</ a > </ dt >
@@ -903,6 +926,7 @@ <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to
903926< li > < a class ="reference internal " href ="#module-contents "> Module Contents</ a > < ul >
904927< li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_warp_specialized "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_warp_specialized()</ span > </ code > </ a > </ li >
905928< li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_tma_and_warp_specialized "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_tma_and_warp_specialized()</ span > </ code > </ a > </ li >
929+ < li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_tma_lower "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_tma_lower()</ span > </ code > </ a > </ li >
906930< li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_fence_proxy "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_fence_proxy()</ span > </ code > </ a > </ li >
907931< li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_vectorize "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_vectorize()</ span > </ code > </ a > </ li >
908932< li > < a class ="reference internal " href ="#tilelang.engine.phase.allow_global_thread_synchronization "> < code class ="docutils literal notranslate "> < span class ="pre "> allow_global_thread_synchronization()</ span > </ code > </ a > </ li >
0 commit comments