Exemple #1
0
    def visit_FieldRef(self, node: gt_ir.FieldRef, **kwargs):
        field_name = node.name
        if kwargs["in_write"]:
            self.field_info[field_name]["access"] = gt_definitions.AccessKind.READ_WRITE
        elif self.field_info[field_name]["access"] is None:
            self.field_info[field_name]["access"] = gt_definitions.AccessKind.READ_ONLY

        offset = tuple(node.offset.values())
        extent = gt_definitions.Extent(
            [(offset[0], offset[0]), (offset[1], offset[1]), (0, 0)]
        )  # exclude sequential axis

        kwargs["compute_extent"] |= extent
        accumulated_extent = kwargs["compute_extent"] + extent
        self.field_info[field_name]["extent"] |= accumulated_extent
    def visit_FieldRef(self, node: gt_ir.FieldRef, **kwargs: Any) -> None:
        field_name = node.name
        if len(kwargs["write_field"]) < 1:
            self.field_info[field_name][
                "access"] = gt_definitions.AccessKind.READ_WRITE
        elif self.field_info[field_name]["access"] is None:
            self.field_info[field_name][
                "access"] = gt_definitions.AccessKind.READ_ONLY
            if kwargs["write_field"] in self.field_info:
                self.field_info[kwargs["write_field"]]["inputs"].add(
                    field_name)

        offset = tuple(node.offset.values())
        self.field_info[field_name]["extent"] |= gt_definitions.Extent([
            (offset[0], offset[0]), (offset[1], offset[1]), (0, 0)
        ])  # exclude sequential axis