@@ -1377,7 +1377,7 @@ class Uxreplace(Transformer):
13771377 def visit_Expression (self , o ):
13781378 return o ._rebuild (expr = uxreplace (o .expr , self .mapper ))
13791379
1380- def visit_Iteration (self , o ):
1380+ def _visit_Iteration_common (self , o ):
13811381 nodes = self ._visit (o .nodes )
13821382 dimension = uxreplace (o .dim , self .mapper )
13831383 limits = [uxreplace (i , self .mapper ) for i in o .limits ]
@@ -1386,9 +1386,25 @@ def visit_Iteration(self, o):
13861386 uindices = [uxreplace (i , self .mapper ) for i in o .uindices ]
13871387 uindices = filter_ordered (i for i in uindices if isinstance (i , Dimension ))
13881388
1389+ return nodes , dimension , limits , pragmas , uindices
1390+
1391+ def visit_Iteration (self , o ):
1392+ nodes , dimension , limits , pragmas , uindices = \
1393+ self ._visit_Iteration_common (o )
1394+
13891395 return o ._rebuild (nodes = nodes , dimension = dimension , limits = limits ,
13901396 pragmas = pragmas , uindices = uindices )
13911397
1398+ def visit_PragmaIteration (self , o ):
1399+ nodes , dimension , limits , pragmas , uindices = \
1400+ self ._visit_Iteration_common (o )
1401+
1402+ reduction = [(uxreplace (var , self .mapper ), imask , op )
1403+ for var , imask , op in (o .reduction or [])]
1404+
1405+ return o ._rebuild (nodes = nodes , dimension = dimension , limits = limits ,
1406+ pragmas = pragmas , uindices = uindices , reduction = reduction )
1407+
13921408 def visit_Definition (self , o ):
13931409 try :
13941410 return o ._rebuild (function = self .mapper [o .function ])
0 commit comments