Print relax AST in the post order format.
| 206 | |
| 207 | @relax.expr_functor.mutator |
| 208 | class ASTPostPrinterMutator(PyExprMutator): |
| 209 | """Print relax AST in the post order format.""" |
| 210 | |
| 211 | def __init__(self) -> None: |
| 212 | super().__init__() |
| 213 | self.log = ASTLog() |
| 214 | |
| 215 | def visit_constant_(self, op: Constant) -> Expr: |
| 216 | op = self.visit_expr_post_order(op) |
| 217 | self.log.add("Constant") |
| 218 | return op |
| 219 | |
| 220 | def visit_global_var_(self, op: GlobalVar) -> Expr: |
| 221 | op = self.visit_expr_post_order(op) |
| 222 | self.log.add("GlobalVar") |
| 223 | return op |
| 224 | |
| 225 | def visit_tuple_(self, op: Tuple) -> Expr: |
| 226 | op = self.visit_expr_post_order(op) |
| 227 | self.log.add("Tuple") |
| 228 | return op |
| 229 | |
| 230 | def visit_var_(self, op: Var) -> Expr: |
| 231 | op = self.visit_expr_post_order(op) |
| 232 | self.log.add("Var") |
| 233 | return op |
| 234 | |
| 235 | def visit_dataflow_var_(self, op: DataflowVar) -> Expr: |
| 236 | op = self.visit_expr_post_order(op) |
| 237 | self.log.add("DataflowVar") |
| 238 | return op |
| 239 | |
| 240 | def visit_function_(self, op: Function) -> Expr: |
| 241 | op = self.visit_expr_post_order(op) |
| 242 | self.log.add("Function") |
| 243 | return op |
| 244 | |
| 245 | def visit_call_(self, op: Call) -> Expr: |
| 246 | op = self.visit_expr_post_order(op) |
| 247 | self.log.add("Call") |
| 248 | return op |
| 249 | |
| 250 | def visit_if_(self, op: If) -> Expr: |
| 251 | op = self.visit_expr_post_order(op) |
| 252 | self.log.add("If") |
| 253 | return op |
| 254 | |
| 255 | def visit_op_(self, op: Op) -> Expr: |
| 256 | op = self.visit_expr_post_order(op) |
| 257 | self.log.add("Op") |
| 258 | return op |
| 259 | |
| 260 | def visit_tuple_getitem_(self, op: TupleGetItem) -> Expr: |
| 261 | op = self.visit_expr_post_order(op) |
| 262 | self.log.add("TupleGetItem") |
| 263 | return op |
| 264 | |
| 265 | def visit_prim_value_(self, op: PrimValue) -> Expr: |
no outgoing calls
searching dependent graphs…