@@ -83,12 +83,12 @@ def acc_mod(self, data, initval=0, resetcond=None, width=None):
8383 def acc_max (self , data , initval = 0 , resetcond = None , width = None ):
8484 def op (left , right ):
8585 return vtypes .Cond (left > right , left , right )
86- return self ._accumulate ([op ], data , width , initval , resetcond )
86+ return self ._accumulate ([op ], data , width , initval , resetcond , 'max' )
8787
8888 def acc_min (self , data , initval = 0 , resetcond = None , width = None ):
8989 def op (left , right ):
9090 return vtypes .Cond (left < right , left , right )
91- return self ._accumulate ([op ], data , width , initval , resetcond )
91+ return self ._accumulate ([op ], data , width , initval , resetcond , 'min' )
9292
9393 def acc_custom (self , data , ops , initval = 0 , resetcond = None , width = None ):
9494 if not isinstance (ops , (tuple , list )):
@@ -119,14 +119,14 @@ def draw_graph(self, filename='out.png', prog='dot'):
119119 _draw_graph (self , filename , prog )
120120
121121 #---------------------------------------------------------------------------
122- def _accumulate (self , ops , data , width = None , initval = 0 , resetcond = None ):
122+ def _accumulate (self , ops , data , width = None , initval = 0 , resetcond = None , oplabel = None ):
123123 if width is None : width = self .width
124124 stage_id , raw_data , raw_valid , raw_ready = self .data_visitor .visit (data )
125125 tmp_data , tmp_valid , tmp_ready = self ._make_tmp (raw_data , raw_valid , raw_ready ,
126126 width , initval , acc_ops = ops )
127127 next_stage_id = stage_id + 1 if stage_id is not None else None
128128 ret = _DataflowVariable (self , next_stage_id , tmp_data , tmp_valid , tmp_ready ,
129- data , ops , resetcond )
129+ data , ops , resetcond , initval , oplabel )
130130 if resetcond is not None :
131131 ret .reset (resetcond , initval )
132132 self .vars .append (ret )
@@ -331,7 +331,7 @@ class _DataflowNumeric(vtypes._Numeric): pass
331331
332332class _DataflowVariable (_DataflowNumeric ):
333333 def __init__ (self , df , stage_id , data , valid = None , ready = None ,
334- src_data = None , ops = None , resetcond = None , initval = None ):
334+ src_data = None , ops = None , resetcond = None , initval = None , oplabel = None ):
335335 self .df = df
336336 self .stage_id = stage_id
337337 self .data = data
@@ -342,6 +342,7 @@ def __init__(self, df, stage_id, data, valid=None, ready=None,
342342 self .ops = ops
343343 self .resetcond = resetcond
344344 self .initval = initval
345+ self .oplabel = oplabel
345346 self .prev_dict = {}
346347 self .preg_dict = {}
347348 if self .ready is not None :
@@ -698,8 +699,16 @@ def visit__DataflowVariable(self, node):
698699 label = [ str (node .stage_id ) ]
699700 label .append (':' )
700701 label .append ( str (node .data ) )
701- for op in node .ops :
702- label .append (vtypes .op2mark (op .__name__ ))
702+ if node .oplabel is not None :
703+ label .append (' ' )
704+ label .append (node .oplabel )
705+ else :
706+ for op in node .ops :
707+ if isinstance (op , type ):
708+ label .append (' ' )
709+ label .append (vtypes .op2mark (op .__name__ ))
710+ else :
711+ label .append (' C' )
703712 label .append ('=' )
704713 self ._add_node (node , label = '' .join (label ), shape = 'box' , style = 'rounded' )
705714 self .visit (node .src_data )
0 commit comments