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)
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)
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)
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)
def visit_ScalarAccess(self, node: gtir.ScalarAccess) -> oir.ScalarAccess: return oir.ScalarAccess(name=node.name, dtype=node.dtype, loc=node.loc)
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)
def visit_ScalarAccess(self, node: gtir.ScalarAccess, **kwargs: Any) -> oir.ScalarAccess: return oir.ScalarAccess(name=node.name, dtype=node.dtype)