Before creating a schedule edge to encourage MacroOpFusion check that:
- The predecessor actually writes a register that the branch reads.
- The predecessor has no successors in the ScheduleDAG so we can schedule it in front of the branch.
This avoids skewing the scheduling heuristic in cases where macroop
fusion cannot happen anyway.