Lines Matching refs:BBInfo

40   /// BBInfo - Per-basic block information used internally by SSAUpdaterImpl.
43 class BBInfo {
47 BBInfo *DefBB; // Block that defines the available value.
49 BBInfo *IDom; // Immediate dominator.
51 BBInfo **Preds; // Array[NumPreds] of predecessor blocks.
54 BBInfo(BlkT *ThisBB, ValT V)
64 typedef SmallVectorImpl<BBInfo*> BlockListTy;
65 typedef DenseMap<BlkT*, BBInfo*> BBMapTy;
79 SmallVector<BBInfo*, 100> BlockList;
80 BBInfo *PseudoEntry = BuildBlockList(BB, &BlockList);
98 /// Create BBInfo structures for the blocks and append them to the block
100 BBInfo *BuildBlockList(BlkT *BB, BlockListTy *BlockList) {
101 SmallVector<BBInfo*, 10> RootList;
102 SmallVector<BBInfo*, 64> WorkList;
104 BBInfo *Info = new (Allocator) BBInfo(BB, 0);
120 Info->Preds = static_cast<BBInfo**>
121 (Allocator.Allocate(Info->NumPreds * sizeof(BBInfo*),
122 AlignOf<BBInfo*>::Alignment));
126 // Check if BBMap already has a BBInfo for the predecessor block.
134 // Create a new BBInfo for the predecessor.
136 BBInfo *PredInfo = new (Allocator) BBInfo(Pred, PredVal);
151 BBInfo *PseudoEntry = new (Allocator) BBInfo(0, 0);
185 BBInfo *SuccInfo = BBMap[*SI];
200 BBInfo *IntersectDominators(BBInfo *Blk1, BBInfo *Blk2) {
226 void FindDominators(BlockListTy *BlockList, BBInfo *PseudoEntry) {
233 BBInfo *Info = *I;
234 BBInfo *NewIDom = 0;
238 BBInfo *Pred = Info->Preds[p];
268 bool IsDefInDomFrontier(const BBInfo *Pred, const BBInfo *IDom) {
287 BBInfo *Info = *I;
294 BBInfo *NewDefBB = Info->IDom->DefBB;
323 BBInfo *Info = *I;
342 BBInfo *Info = *I;
359 BBInfo *PredInfo = Info->Preds[p];
409 BBInfo *PredInfo = BBMap[I.getIncomingBlock()];