Currently we are working on some passes on TVM IR level (the IR which once was Halide IR). They require some traditional program analysis (for example, Live Variable Analysis, Def-Use Information).
We are wondering if there are any related infrastructure (like classic control-flow graph, basic block (A doubly-linked list-like structure)?
If there is none, do you guys need one?
We are also quite curious about how legality check is working. For example, if we try to use “compute_at” into a loop body, TVM will automatically resolve dependency issues. We are curious how it is resolved. Do you have any suggestion on the big picture and where in the source code we should look at?