@@ -88,6 +88,8 @@ def visit__BinaryOperator(self, node):
8888 node ._set_start_stage (mine )
8989 if getattr (node , 'variable_latency' , None ):
9090 node .latency = getattr (node , node .variable_latency )()
91+ if getattr (node , 'variable_iteration_interval' , None ):
92+ node .iteration_interval = getattr (node , node .variable_iteration_interval )()
9193 end = self .next_stage (node , mine )
9294 node ._set_end_stage (end )
9395 return end
@@ -99,6 +101,10 @@ def visit__UnaryOperator(self, node):
99101 mine = self .max_stage (right )
100102 node .right = self .fill_gap (node .right , mine )
101103 node ._set_start_stage (mine )
104+ if getattr (node , 'variable_latency' , None ):
105+ node .latency = getattr (node , node .variable_latency )()
106+ if getattr (node , 'variable_iteration_interval' , None ):
107+ node .iteration_interval = getattr (node , node .variable_iteration_interval )()
102108 end = self .next_stage (node , mine )
103109 node ._set_end_stage (end )
104110 return end
@@ -113,6 +119,10 @@ def visit__SpecialOperator(self, node):
113119 mine = self .max_stage (* ret )
114120 node .args = [self .fill_gap (var , mine ) for var in node .args ]
115121 node ._set_start_stage (mine )
122+ if getattr (node , 'variable_latency' , None ):
123+ node .latency = getattr (node , node .variable_latency )()
124+ if getattr (node , 'variable_iteration_interval' , None ):
125+ node .iteration_interval = getattr (node , node .variable_iteration_interval )()
116126 end = self .next_stage (node , mine )
117127 node ._set_end_stage (end )
118128 return end
@@ -147,6 +157,10 @@ def visit__Accumulator(self, node):
147157 node .reset = self .fill_gap (node .reset , mine )
148158 node .reg_initval = self .fill_gap (node .reg_initval , mine )
149159 node ._set_start_stage (mine )
160+ if getattr (node , 'variable_latency' , None ):
161+ node .latency = getattr (node , node .variable_latency )()
162+ if getattr (node , 'variable_iteration_interval' , None ):
163+ node .iteration_interval = getattr (node , node .variable_iteration_interval )()
150164 end = self .next_stage (node , mine )
151165 node ._set_end_stage (end )
152166 return end
0 commit comments