- Edge edgetocalc;
- unsigned uncalculated = 0;
-
- // collect weights of all incoming and outgoing edges, rememer edges that
- // have no value
- unsigned incount = 0;
- SmallSet<const BasicBlock*,8> pred_visited;
- pred_const_iterator bbi = pred_begin(BB), bbe = pred_end(BB);
- if (bbi==bbe) {
- readEdgeOrRemember(getEdge(0, BB),edgetocalc,uncalculated,incount);
- }
- for (;bbi != bbe; ++bbi) {
- if (pred_visited.insert(*bbi)) {
- readEdgeOrRemember(getEdge(*bbi, BB),edgetocalc,uncalculated,incount);
- }
+ Edge tocalc;
+ if (CalculateMissingEdge(BB, tocalc)) {
+ SpanningTree.erase(tocalc);