Skip to content

kirin.rewrite.compactify.SkipBlock

← Module overview

classSkipBlocksource

kirin.rewrite.compactify.SkipBlock

Bases: RewriteRule

Simplify a block that only contains a branch statement.

class SkipBlock(cfg: CFG)

Parameters

NameTypeDescription
cfgCFG

Attributes

NameTypeDescription
cfgCFG

methodrewrite_Regionsource

kirin.rewrite.compactify.SkipBlock.rewrite_Region

def rewrite_Region(node: ir.Region) -> RewriteResult

Parameters

NameTypeDescription
nodeir.Region

Returns

RewriteResult

source

methodrewrite_Blocksource

kirin.rewrite.compactify.SkipBlock.rewrite_Block

def rewrite_Block(node: ir.Block) -> RewriteResult

Parameters

NameTypeDescription
nodeir.Block

Returns

RewriteResult

source

methodcan_skipsource

kirin.rewrite.compactify.SkipBlock.can_skip

def can_skip(terminator: cf.Branch, value: ir.SSAValue) -> bool

Parameters

NameTypeDescription
terminatorcf.Branch
valueir.SSAValue

Returns

bool

source

methodrewrite_predsource

kirin.rewrite.compactify.SkipBlock.rewrite_pred

Signature
def rewrite_pred(node: ir.Block, node_terminator: cf.Branch, predecessor: ir.Block) -> bool

Parameters

NameTypeDescription
nodeir.Block
node_terminatorcf.Branch
predecessorir.Block

Returns

bool

source

methodrewrite_pred_Branchsource

kirin.rewrite.compactify.SkipBlock.rewrite_pred_Branch

Signature
def rewrite_pred_Branch(node: ir.Block, node_terminator: cf.Branch, predecessor: ir.Block, pred_terminator: cf.Branch) -> bool

Parameters

NameTypeDescription
nodeir.Block
node_terminatorcf.Branch
predecessorir.Block
pred_terminatorcf.Branch

Returns

bool

source

methodrewrite_pred_ConditionalBranchsource

kirin.rewrite.compactify.SkipBlock.rewrite_pred_ConditionalBranch

Signature
def rewrite_pred_ConditionalBranch(node: ir.Block, node_terminator: cf.Branch, predecessor: ir.Block, pred_terminator: cf.ConditionalBranch) -> bool

Parameters

NameTypeDescription
nodeir.Block
node_terminatorcf.Branch
predecessorir.Block
pred_terminatorcf.ConditionalBranch

Returns

bool

source

methodfix_cfgsource

kirin.rewrite.compactify.SkipBlock.fix_cfg

def fix_cfg(predecessor: ir.Block, node: ir.Block, successor: ir.Block)

Parameters

NameTypeDescription
predecessorir.Block
nodeir.Block
successorir.Block
source