Skip to content

Unroll

UnrollScf dataclass

UnrollScf(dialects: DialectGroup, *, no_raise: bool = True)

Bases: Pass


              flowchart TD
              kirin.passes.aggressive.unroll.UnrollScf[UnrollScf]
              kirin.passes.abc.Pass[Pass]

                              kirin.passes.abc.Pass --> kirin.passes.aggressive.unroll.UnrollScf
                


              click kirin.passes.aggressive.unroll.UnrollScf href "" "kirin.passes.aggressive.unroll.UnrollScf"
              click kirin.passes.abc.Pass href "" "kirin.passes.abc.Pass"
            

This pass can be used to unroll scf.For loops and inline/expand scf.IfElse when the input are known at compile time.

usage

UnrollScf(dialects).fixpoint(method)

Note: This pass should be used in a fixpoint manner, to unroll nested scf nodes.