tvm_tirx.ir.transform.Sequential#
- class tvm_tirx.ir.transform.Sequential(passes=None, opt_level=0, name='sequential')#
Bases:
PassA pass that works on a sequence of pass objects. Multiple passes can be executed sequentially using this class.
Passes run in the given order, subject to the optimization level and the required/disabled pass controls in PassContext. A child pass runs when its
info.opt_levelis at most the context’sopt_levelor its name is inrequired_pass, and never when its name is indisabled_pass. ASequentialis itself a pass, so it can be nested in anotherSequential.- Parameters:
passes (Optional[List[Pass]]) – A sequence of passes candidate for optimization.
opt_level (Optional[int]) – The optimization level of this sequential pass. The opt_level of a default sequential pass is set to 0. Child passes use the active PassContext’s optimization level.
name (Optional[str]) – The name of the sequential pass.
Examples
from tvm_tirx import tirx from tvm_tirx.ir.transform import PassContext, Sequential @tirx.transform.function_pass(opt_level=3) def expensive(func, mod, ctx): return func pipeline = Sequential([tirx.transform.StmtSimplify(), expensive]) with PassContext(opt_level=2): after = pipeline(mod) # skips expensive, whose opt_level is 3 with PassContext(opt_level=2, required_pass=["expensive"]): after = pipeline(mod) # runs both passes
- property pass_info#
- property passes#