Corrections to A2's reaching def issues (will be reusing for A3)
Transferred dataflow/definition util funcs from A2 to A3