visual_debugger
visual_debugger copied to clipboard
Update definitions: intermediate step visualization and recursion
Visualizing update definitions turns out to be challenging due to design choices in Halide.
Quoting Andrew Adams on Halide gitter: "When you call a Func, you get the final version after all the updates have run. There's no way to have a call node reference an intermediate result. The exception is if it's a recursive call from a Func to itself, in which case the value is whatever was last stored to that site."
This means one needs to track which update definition index we are processing in a visitor/mutator chain in order to resolve self-references/recursion. We might need to keep a queue of active Funcs with their update definition indices to resolve complicated cross-references in update definition chains.
some progress in branch: slomp/feature/update-defs