I’m trying to use tvm.ir_pass.IRTransform
to do a pre-order (top-down) transformation. The problem I’m encountering is that IRTransform
doesn’t recurse anymore when pre-order function performs a transformation (see https://github.com/dmlc/tvm/blob/master/src/pass/ir_mutator.cc#L30-L46) . Is this design on purpose?
One alternative design is to change it to something like this:
if (f_preorder_ != nullptr) {
T pre = f_preorder_(node);
if (pre.defined()) {
node = pre;
}
}
node = IRMutator::Mutate(node);