[gicombiner] Process the MatchDag such that every node is reachable from the roots

Summary:

When we build the walk across these DAG's we need to be able to reach every node

from the roots. Flip and traversal edges (so that use->def becomes def->uses)

that make nodes unreachable. Note that early on we'll just error out on these

flipped edges as def->uses edges are more complicated to match due to their

one->many nature.

Depends on D69077

Reviewers: volkan, bogner

Subscribers: llvm-commits