From 07c4aad09d68ff26f0db2b84579aabaa83863ff9 Mon Sep 17 00:00:00 2001 From: Phillip Weinberg Date: Tue, 25 Nov 2025 16:31:19 -0500 Subject: [PATCH 1/2] Making HintLen less aggressive --- src/kirin/dialects/ilist/rewrite/hint_len.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/kirin/dialects/ilist/rewrite/hint_len.py b/src/kirin/dialects/ilist/rewrite/hint_len.py index b20229ec7..671881cb2 100644 --- a/src/kirin/dialects/ilist/rewrite/hint_len.py +++ b/src/kirin/dialects/ilist/rewrite/hint_len.py @@ -1,6 +1,6 @@ from kirin import ir, types from kirin.analysis import const -from kirin.dialects import py +from kirin.dialects import py, scf from kirin.rewrite.abc import RewriteRule, RewriteResult from kirin.dialects.ilist.stmts import IListType @@ -26,12 +26,17 @@ def _get_collection_len(self, collection: ir.SSAValue): return None def rewrite_Statement(self, node: ir.Statement) -> RewriteResult: - if not isinstance(node, py.Len): + + if not ( + isinstance(node, py.Len) + and not isinstance(node.parent_stmt, (scf.For, scf.IfElse)) + ): return RewriteResult() if (coll_len := self._get_collection_len(node.value)) is None: return RewriteResult() + print(id(node), id(node.value), id(node.result), node.result.name, coll_len) existing_hint = node.result.hints.get("const") new_hint = const.Value(coll_len) From ed3c04edc634079b14cb1f592b075ccf956a5b8c Mon Sep 17 00:00:00 2001 From: Phillip Weinberg Date: Tue, 25 Nov 2025 16:37:49 -0500 Subject: [PATCH 2/2] removing print --- src/kirin/dialects/ilist/rewrite/hint_len.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/kirin/dialects/ilist/rewrite/hint_len.py b/src/kirin/dialects/ilist/rewrite/hint_len.py index 671881cb2..4c535474e 100644 --- a/src/kirin/dialects/ilist/rewrite/hint_len.py +++ b/src/kirin/dialects/ilist/rewrite/hint_len.py @@ -36,7 +36,6 @@ def rewrite_Statement(self, node: ir.Statement) -> RewriteResult: if (coll_len := self._get_collection_len(node.value)) is None: return RewriteResult() - print(id(node), id(node.value), id(node.result), node.result.name, coll_len) existing_hint = node.result.hints.get("const") new_hint = const.Value(coll_len)