Lines Matching refs:Edge
75 Edge e = getEdge(0, BB);
79 // the sum of the edge frequencies from the incoming edges.
102 Edge e = getEdge(BB,0);
183 void ProfileInfoT<Function,BasicBlock>::addEdgeWeight(Edge e, double w) {
185 assert (oldw != MissingValue && "Adding weight to Edge with no previous weight");
186 DEBUG(dbgs() << "Adding to Edge " << e
212 void ProfileInfoT<Function,BasicBlock>::removeEdge(Edge e) {
223 replaceEdge(const Edge &oldedge, const Edge &newedge) {
260 Edge e = getEdge(BB,*Succ);
282 divertFlow(const Edge &oldedge, const Edge &newedge) {
285 // First check if the old edge was taken, if not, just delete it...
300 Edge e = getEdge(Parent,BB);
325 Edge e, newedge;
352 Edge newedge = getEdge(DestBB, DestBB);
362 /// Splits an edge in the ProfileInfo and redirects flow over NewBB.
363 /// Since its possible that there is more than one edge in the CFG from FristBB
376 Edge e = getEdge(FirstBB, SecondBB);
377 Edge n1 = getEdge(FirstBB, NewBB);
378 Edge n2 = getEdge(NewBB, SecondBB);
399 // proportional part of the edge weight over NewBB.
421 std::set<Edge> Edges;
424 Edge old = ewi->first;
429 for (std::set<Edge>::iterator EI = Edges.begin(), EE = Edges.end();
431 Edge newedge = getEdge(New, EI->second);
462 Edge oldedge = getEdge(Pred, BB);
463 Edge newedge = getEdge(Pred, NewBB);
472 Edge newedge = getEdge(NewBB,BB);
492 static double readEdgeOrRemember(ProfileInfo::Edge edge, double w,
493 ProfileInfo::Edge &tocalc, unsigned &uncalc) {
495 tocalc = edge;
505 CalculateMissingEdge(const BasicBlock *BB, Edge &removed,
507 Edge edgetocalc;
516 Edge e = getEdge(0,BB);
521 Edge e = getEdge(*bbi,BB);
530 Edge e = getEdge(BB,0);
542 Edge e = getEdge(BB,*sbbi);
547 // if exactly one edge weight was missing, calculate it and remove it from
558 DEBUG(dbgs() << "--Calc Edge Counter for " << edgetocalc << ": "
572 static void readEdge(ProfileInfo *PI, ProfileInfo::Edge e, double &calcw, std::set<ProfileInfo::Edge> &misscount) {
584 std::set<Edge> inMissing;
597 std::set<Edge> outMissing;
609 std::set<Edge>::iterator ei,ee;
665 std::set<Edge> ReturnEdges;
683 Edge e = getEdge(BB,0);
686 // If the return edge has no value, try to read value from block.
692 // If both return edge and block provide no value, collect edge.
696 // If the return edge has a proper value, collect it.
711 // If there is only one edge left, calculate it.
715 Edge e = *ReturnEdges.begin();
724 // Calculate all blocks where only one edge is missing, this may also
729 Edge e;
743 // Estimate edge weights by dividing the flow proportionally.
784 Edge e = getEdge(*NBB, BB);
806 Edge e = getEdge(BB, *NBB);
821 Edge e = getEdge(BB, *NBB);
843 Edge e = getEdge(P[Dest],Dest);
867 Edge e = getEdge(BB,BB);
874 Edge e = getEdge(*NBB, BB);
904 Edge e = getEdge(Dest,BB);
911 Edge e = getEdge(P[Dest], Dest);
940 Edge e = getEdge(*NBB, BB);
948 Edge e = getEdge(P[Dest], Dest);
954 assert(0 && "Edge should not have value already!");
969 Edge e = getEdge(*NBB,BB);
996 Edge e = EI->first;