Skip to content

Reconcile unrealized casts

reconcile_unrealized_casts

ReconcileUnrealizedCastsPattern dataclass

Bases: RewritePattern

Removes the chains of builtin.unrealized_conversion_cast operations that are no longer necessary and that start with the matched builtin.unrealized_conversion_cast.

Source code in xdsl/transforms/reconcile_unrealized_casts.py
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
@dataclass
class ReconcileUnrealizedCastsPattern(RewritePattern):
    """
    Removes the chains of `builtin.unrealized_conversion_cast` operations
    that are no longer necessary and that start with the matched
    `builtin.unrealized_conversion_cast`.
    """

    warn_on_failure: bool = field(default=False, kw_only=True)

    @op_type_rewrite_pattern
    def match_and_rewrite(
        self, op: builtin.UnrealizedConversionCastOp, rewriter: PatternRewriter
    ):
        _try_remove_cast_chain(op, rewriter, self.warn_on_failure)

warn_on_failure: bool = field(default=False, kw_only=True) class-attribute instance-attribute

__init__(*, warn_on_failure: bool = False) -> None

match_and_rewrite(op: builtin.UnrealizedConversionCastOp, rewriter: PatternRewriter)

Source code in xdsl/transforms/reconcile_unrealized_casts.py
106
107
108
109
110
@op_type_rewrite_pattern
def match_and_rewrite(
    self, op: builtin.UnrealizedConversionCastOp, rewriter: PatternRewriter
):
    _try_remove_cast_chain(op, rewriter, self.warn_on_failure)

ReconcileUnrealizedCastsPass dataclass

Bases: ModulePass

Source code in xdsl/transforms/reconcile_unrealized_casts.py
124
125
126
127
128
class ReconcileUnrealizedCastsPass(ModulePass):
    name = "reconcile-unrealized-casts"

    def apply(self, ctx: Context, op: ModuleOp) -> None:
        reconcile_unrealized_casts(op)

name = 'reconcile-unrealized-casts' class-attribute instance-attribute

apply(ctx: Context, op: ModuleOp) -> None

Source code in xdsl/transforms/reconcile_unrealized_casts.py
127
128
def apply(self, ctx: Context, op: ModuleOp) -> None:
    reconcile_unrealized_casts(op)

reconcile_unrealized_casts(module: ModuleOp, *, warn_on_failure: bool = True)

Removes all builtin.unrealized_conversion_cast operations that are not needed anymore in a module.

Source code in xdsl/transforms/reconcile_unrealized_casts.py
113
114
115
116
117
118
119
120
121
def reconcile_unrealized_casts(module: ModuleOp, *, warn_on_failure: bool = True):
    """
    Removes all `builtin.unrealized_conversion_cast` operations
    that are not needed anymore in a module.
    """

    PatternRewriteWalker(
        ReconcileUnrealizedCastsPattern(warn_on_failure=warn_on_failure)
    ).rewrite_module(module)