Home | History | Annotate | Download | only in CodeGen

Lines Matching full:valno

62     assert(I->valno->def == I->start && "Inconsistent existing value def");
71 I->start = I->valno->def = Def;
72 return I->valno;
189 /// ValNo is dead, remove it. If it is the largest value number, just nuke it
192 void LiveRange::markValNoForDeletion(VNInfo *ValNo) {
193 if (ValNo->id == getNumValNums()-1) {
198 ValNo->markUnused();
208 VNInfo *VNI = I->valno;
211 assert(!VNI->isUnused() && "Unused valno used by live segment");
222 VNInfo *ValNo = I->valno;
227 assert(MergeTo->valno == ValNo && "Cannot merge with differing values!");
236 MergeTo->valno == ValNo) {
252 VNInfo *ValNo = I->valno;
262 assert(MergeTo->valno == ValNo && "Cannot merge with differing values!");
268 if (MergeTo->end >= NewStart && MergeTo->valno == ValNo) {
289 if (S.valno == B->valno) {
296 // different valno's.
306 if (S.valno == it->valno) {
318 // different valno's.
343 return I->valno;
357 VNInfo *ValNo = I->valno;
364 if (II != I && II->valno == ValNo) {
369 // Now that ValNo is dead, remove it.
370 markValNoForDeletion(ValNo);
392 segments.insert(std::next(I), Segment(End, OldEnd, ValNo));
397 void LiveRange::removeValNo(VNInfo *ValNo) {
403 if (I->valno == ValNo)
406 // Now that ValNo is dead, remove it.
407 markValNoForDeletion(ValNo);
435 OutIt->valno = NewVNInfo[LHSValNoAssignments[OutIt->valno->id]];
437 VNInfo* nextValNo = NewVNInfo[LHSValNoAssignments[I->valno->id]];
443 if (OutIt->valno == nextValNo && OutIt->end == I->start) {
448 OutIt->valno = nextValNo;
465 I->valno = NewVNInfo[RHSValNoAssignments[I->valno->id]];
510 if (I->valno == RHSValNo)
535 if (S->valno != V1) continue; // Not a V1 Segment.
541 if (Prev->valno == V2 && Prev->end == S->start) {
553 S->valno = V2;
559 if (I->start == S->end && I->valno == V2) {
581 return os << '[' << S.start << ',' << S.end << ':' << S.valno->id << ")";
596 assert(I->valno == getValNumInfo(I->valno->id) && "Bad VNInfo");
641 assert(I->valno != nullptr);
642 assert(I->valno->id < valnos.size());
643 assert(I->valno == valnos[I->valno->id]);
647 assert(I->valno != std::next(I)->valno);
716 return A.valno == B.valno;
719 assert(A.valno == B.valno && "Cannot overlap different values");
756 assert(ReadI->valno == Seg.valno && "Cannot overlap different values");
931 while (J != E && EqClass[J->valno->id] == 0)
934 if (unsigned eq = EqClass[I->valno->id]) {