Ejemplo n.º 1
0
 def visit_FieldAccess(
         self, node: oir.FieldAccess, *, local_tmps: Set[str],
         **kwargs: Any) -> Union[oir.FieldAccess, oir.ScalarAccess]:
     if node.name in local_tmps:
         assert (node.offset.i == node.offset.j == node.offset.k ==
                 0), "Non-zero offset in local temporary?!"
         return oir.ScalarAccess(name=node.name, dtype=node.dtype)
     return self.generic_visit(node, **kwargs)
 def visit_ScalarAccess(self, node: oir.ScalarAccess, *,
                        scalar_map: Dict[str, str],
                        **kwargs: Any) -> oir.ScalarAccess:
     if node.name in scalar_map:
         name = scalar_map[node.name]
     else:
         name = node.name
     return oir.ScalarAccess(name=name, dtype=node.dtype)
Ejemplo n.º 3
0
 def visit_FieldAccess(
         self, node: oir.FieldAccess, *, tmps_name_map: Dict[str, str],
         **kwargs: Any) -> Union[oir.FieldAccess, oir.ScalarAccess]:
     if node.name in tmps_name_map:
         assert (node.offset.i == node.offset.j == node.offset.k ==
                 0), "Non-zero offset in temporary that is replaced?!"
         return oir.ScalarAccess(name=tmps_name_map[node.name],
                                 dtype=node.dtype)
     return self.generic_visit(node, **kwargs)
Ejemplo n.º 4
0
 def visit_ScalarAccess(self, node: oir.ScalarAccess, *,
                        scalar_map: Dict[str, str],
                        **kwargs: Any) -> oir.ScalarAccess:
     return oir.ScalarAccess(
         name=scalar_map[node.name]
         if node.name in scalar_map else node.name,
         dtype=node.dtype,
         loc=node.loc,
     )
 def visit_FieldAccess(
     self,
     node: oir.FieldAccess,
     *,
     offset_symbol_map: Dict[Tuple[str, Tuple[int, int, int]], str] = None,
     **kwargs: Any,
 ) -> Union[oir.FieldAccess, oir.ScalarAccess]:
     if offset_symbol_map:
         offset = self.visit(node.offset, **kwargs)
         key = node.name, (offset.i, offset.j, offset.k)
         if key in offset_symbol_map:
             return oir.ScalarAccess(name=offset_symbol_map[key],
                                     dtype=node.dtype)
     return self.generic_visit(node, **kwargs)
Ejemplo n.º 6
0
 def visit_ScalarAccess(self, node: oir.ScalarAccess) -> oir.ScalarAccess:
     if node.name not in decls_map:
         return node
     return oir.ScalarAccess(name=decls_map[node.name], dtype=node.dtype)
Ejemplo n.º 7
0
 def visit_ScalarAccess(self, node: gtir.ScalarAccess) -> oir.ScalarAccess:
     return oir.ScalarAccess(name=node.name, dtype=node.dtype, loc=node.loc)
Ejemplo n.º 8
0
 def visit_ScalarAccess(self, node: oir.ScalarAccess):
     if node.name not in self._field_table:
         return node
     return oir.ScalarAccess(name=self._field_table[node.name],
                             dtype=node.dtype)
Ejemplo n.º 9
0
 def visit_ScalarAccess(self, node: gtir.ScalarAccess, **kwargs: Any) -> oir.ScalarAccess:
     return oir.ScalarAccess(name=node.name, dtype=node.dtype)