Skip to content

Commit

Permalink
transforms.iodelay_estimator: allow goto in zero-iodelay while statem…
Browse files Browse the repository at this point in the history
…ents.
whitequark committed Dec 18, 2015
1 parent 2759310 commit 0755aa3
Showing 2 changed files with 6 additions and 1 deletion.
6 changes: 5 additions & 1 deletion artiq/compiler/transforms/iodelay_estimator.py
Original file line number Diff line number Diff line change
@@ -200,11 +200,15 @@ def visit_control_flow(self, kind, node):
self.abort("{} cannot be interleaved".format(kind), node.loc)
self.current_delay = old_delay

visit_While = lambda self, node: self.visit_control_flow("while statement", node)
visit_If = lambda self, node: self.visit_control_flow("if statement", node)
visit_IfExpT = lambda self, node: self.visit_control_flow("if expression", node)
visit_Try = lambda self, node: self.visit_control_flow("try statement", node)

def visit_While(self, node):
old_goto, self.current_goto = self.current_goto, None
self.visit_control_flow("while statement", node)
self.current_goto = old_goto

def visit_Return(self, node):
self.current_return = node

1 change: 1 addition & 0 deletions lit-test/test/interleaving/control_flow.py
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@ def f():
print(2)
while False:
print(3)
break
delay_mu(1)
print(4)

0 comments on commit 0755aa3

Please sign in to comment.