forked from M-Labs/artiq
unroll_loops: handle for/else
This commit is contained in:
parent
08ff5154a8
commit
956f75d168
|
@ -75,7 +75,10 @@ def unroll_loops(stmts, limit):
|
|||
pass
|
||||
else:
|
||||
unroll_loops(stmt.body, limit)
|
||||
n = len(it)*_count_stmts(stmt.body)
|
||||
unroll_loops(stmt.orelse, limit)
|
||||
l_it = len(it)
|
||||
if l_it:
|
||||
n = l_it*_count_stmts(stmt.body)
|
||||
if n < limit:
|
||||
replacement = []
|
||||
for i in it:
|
||||
|
@ -87,6 +90,8 @@ def unroll_loops(stmts, limit):
|
|||
replacement += stmt.body
|
||||
if replacement is not None:
|
||||
replacements.append((stmt_i, replacement))
|
||||
else:
|
||||
replacements.append((stmt_i, stmt.orelse))
|
||||
if isinstance(stmt, (ast.While, ast.If)):
|
||||
unroll_loops(stmt.body, limit)
|
||||
unroll_loops(stmt.orelse, limit)
|
||||
|
|
Loading…
Reference in New Issue