Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/kirin/dialects/ilist/rewrite/hint_len.py
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -26,7 +26,11 @@ 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:
Expand Down
Loading