Currently there is a single point in ScheduleDAGRRList, where we

actually query the topological order (besides init code). Currently we

are recomputing the order after adding a node (which does not have

predecessors) and then we add predecessors edge-by-edge.

We can avoid adding edges one-by-one after we added a new node. In that case, we can

just rebuild the order from scratch after adding the edges to the DAG

and avoid all the updates to the ordering.

Also, we can delay updating the DAG until we query the DAG, if we keep a

list of added edges. Depending on the number of updates, we can either

apply them when needed or recompute the order from scratch.

This brings down the geomean compile time for of CTMark with -O1 down 0.2% on X86,

with no regressions.