ITADN

Verbose setting for RewritePass for better logging and debugging

#2876Opensrikris-sridhar 创建于 2026-03-31
S
srikris-sridharcommented
Problem: I want a setting to know if a pass is triggered. Solution: Make a flag in RewritePass to be verbose or not. Here is a proposal. Is there a batter way? ``` Change RewritePass: class RewritePass(ir.passes.InPlacePass): def __init__( self, rules: Sequence[pattern.RewriteRule] | pattern.RewriteRuleSet, /, verbose: int = 0, # ADD THIS ) -> None: super().__init__() if isinstance(rules, Sequence): if not rules: raise ValueError("rules must not be empty") rules = pattern.RewriteRuleSet(rules) assert isinstance(rules, pattern.RewriteRuleSet) self.rules: pattern.RewriteRuleSet = rules self.verbose = verbose # ADD THIS def call(self, model: ir.Model) -> ir.passes.PassResult: count = self.rules.apply_to_model(model, verbose=self.verbose if self.verbose else None) # CHANGE THIS LINE if count: print(f"Applied {count} of general pattern rewrite rules.") return ir.passes.PassResult(model, bool(count)) File 2: tetracode/src/www/python/tetrai/compilers/onnx2onnx/optimizer.py Add verbose parameter and pass it: def optimize_onnx_using_onnx_ir( onnx_model: rewriter._ModelProtoOrIr, rewrite_rules: Sequence[rewriter.pattern.RewriteRule] | None = None, logger: TetraLoggerAdapter = TetraLoggerAdapter(__name__), verbose: int = 0, # ADD THIS ) -> rewriter._ModelProtoOrIr: ... passes = [ ... rewriter.RewritePass(rewrite_rules, verbose=verbose), # ADD verbose HERE ... ] ```
1 条评论