Lines Matching full:info

120     BBInfo *Info = new (Allocator) BBInfo(BB, 0);
121 BBMap[BB] = Info;
122 WorkList.push_back(Info);
129 Info = WorkList.pop_back_val();
131 Traits::FindPredecessorBlocks(Info->BB, &Preds);
132 Info->NumPreds = Preds.size();
133 if (Info->NumPreds == 0)
134 Info->Preds = nullptr;
136 Info->Preds = static_cast<BBInfo **>(Allocator.Allocate(
137 Info->NumPreds * sizeof(BBInfo *), alignof(BBInfo *)));
139 for (unsigned p = 0; p != Info->NumPreds; ++p) {
144 Info->Preds[p] = BBMapBucket;
152 Info->Preds[p] = PredInfo;
170 Info = RootList.pop_back_val();
171 Info->IDom = PseudoEntry;
172 Info->BlkNum = -1;
173 WorkList.push_back(Info);
177 Info = WorkList.back();
179 if (Info->BlkNum == -2) {
181 Info->BlkNum = BlkNum++;
183 if (!Info->AvailableVal)
184 BlockList->push_back(Info);
193 Info->BlkNum = -2;
197 Traits::BlkSucc_begin(Info->BB),
198 E = Traits::BlkSucc_end(Info->BB); SI != E; ++SI) {
247 BBInfo *Info = *I;
251 for (unsigned p = 0; p != Info->NumPreds; ++p) {
252 BBInfo *Pred = Info->Preds[p];
270 if (NewIDom && NewIDom != Info->IDom) {
271 Info->IDom = NewIDom;
301 BBInfo *Info = *I;
304 if (Info->DefBB == Info)
308 BBInfo *NewDefBB = Info->IDom->DefBB;
309 for (unsigned p = 0; p != Info->NumPreds; ++p) {
310 if (IsDefInDomFrontier(Info->Preds[p], Info->IDom)) {
312 NewDefBB = Info;
318 if (NewDefBB != Info->DefBB) {
319 Info->DefBB = NewDefBB;
327 /// it as value for block represented by Info. Return true if singluar value
329 bool FindSingularVal(BBInfo *Info) {
330 if (!Info->NumPreds)
332 ValT Singular = Info->Preds[0]->DefBB->AvailableVal;
335 for (unsigned Idx = 1; Idx < Info->NumPreds; ++Idx) {
336 ValT PredVal = Info->Preds[Idx]->DefBB->AvailableVal;
341 (*AvailableVals)[Info->BB] = Singular;
342 assert(BBMap[Info->BB] == Info && "Info missed in BBMap?");
343 Info->AvailableVal = Singular;
344 Info->DefBB = Info->Preds[0]->DefBB;
359 BBInfo *Info = *I;
361 if (Info->DefBB != Info)
365 if (FindSingularVal(Info))
369 FindExistingPHI(Info->BB, BlockList);
370 if (Info->AvailableVal)
373 ValT PHI = Traits::CreateEmptyPHI(Info->BB, Info->NumPreds, Updater);
374 Info->AvailableVal = PHI;
375 (*AvailableVals)[Info->BB] = PHI;
382 BBInfo *Info = *I;
384 if (Info->DefBB != Info) {
387 (*AvailableVals)[Info->BB] = Info->DefBB->AvailableVal;
392 PhiT *PHI = Traits::ValueIsNewPHI(Info->AvailableVal, Updater);
397 for (unsigned p = 0; p != Info->NumPreds; ++p) {
398 BBInfo *PredInfo = Info->Preds[p];