This is necessary for cross block optimizations to work, especially branch joining. Without this the joining pass could easily try to join two blocks where the child has two parents. This is additionally helpful in allowing us to do reverse traversals of the IR
This is necessary for cross block optimizations to work, especially branch joining. Without this the joining pass could easily try to join two blocks where the child has two parents. This is additionally helpful in allowing us to do reverse traversals of the IR