Home | History | Annotate | Download | only in Scalar

Lines Matching defs:Rank

15 // In the implementation of this algorithm, constants are assigned rank = 0,
16 // function arguments are rank = 1, and other values are assigned ranks
18 // (starting at 2), which effectively gives values in deep loops higher rank
52 unsigned Rank;
54 ValueEntry(unsigned R, Value *O) : Rank(R), Op(O) {}
57 return LHS.Rank > RHS.Rank; // Sort so that highest rank goes to start.
71 dbgs() << ", #" << Ops[i].Rank << "] ";
136 // Sort the XorOpnd-Pointer in ascending order of symbolic-value-rank.
139 // 2) Operand having smaller symbolic-value-rank is permuted earlier, which
141 // Note that values' rank are basically defined in RPO order (FIXME).
142 // So, if Rank(X) < Rank(Y) < Rank(Z), it means X is defined earlier
290 return 0; // Otherwise it's a global or constant, rank 0.
293 if (unsigned Rank = ValueRankMap[I])
294 return Rank; // Rank already known?
296 // If this is an expression, return the 1+MAX(rank(LHS), rank(RHS)) so that
300 unsigned Rank = 0, MaxRank = RankMap[I->getParent()];
302 i != e && Rank != MaxRank; ++i)
303 Rank = std::max(Rank, getRank(I->getOperand(i)));
305 // If this is a not or neg instruction, do not count it for rank. This
306 // assures us that X and ~X will have the same rank.
309 ++Rank;
311 //DEBUG(dbgs() << "Calculated Rank[" << V->getName() << "] = "
312 // << Rank << "\n");
314 return ValueRankMap[I] = Rank;
966 /// rank as element i to see if X exists. If X does not exist, return i. This
968 /// same rank.
971 unsigned XRank = Ops[i].Rank;
973 for (unsigned j = i+1; j != e && Ops[j].Rank == XRank; ++j)
977 for (unsigned j = i-1; j != ~0U && Ops[j].Rank == XRank; --j)
1841 // Sort the operands by rank.
1917 // the operands and their ranks, sort the operands by their rank. Use a
1975 // Calculate the rank map for F
2000 // We are done with the rank map.