Lines Matching defs:BB
62 bool SSAUpdater::HasValueForBlock(BasicBlock *BB) const {
63 return getAvailableVals(AV).count(BB);
66 Value *SSAUpdater::FindValueForBlock(BasicBlock *BB) const {
67 return getAvailableVals(AV).lookup(BB);
70 void SSAUpdater::AddAvailableValue(BasicBlock *BB, Value *V) {
74 getAvailableVals(AV)[BB] = V;
93 Value *SSAUpdater::GetValueAtEndOfBlock(BasicBlock *BB) {
94 Value *Res = GetValueAtEndOfBlockInternal(BB);
98 Value *SSAUpdater::GetValueInMiddleOfBlock(BasicBlock *BB) {
101 if (!HasValueForBlock(BB))
102 return GetValueAtEndOfBlock(BB);
112 if (PHINode *SomePhi = dyn_cast<PHINode>(BB->begin())) {
126 for (BasicBlock *PredBB : predecessors(BB)) {
149 if (isa<PHINode>(BB->begin())) {
152 for (PHINode &SomePHI : BB->phis()) {
161 InsertedPHI->insertBefore(BB->begin());
170 simplifyInstruction(InsertedPHI, BB->getDataLayout())) {
177 if (const Instruction *I = BB->getFirstNonPHI())
270 static BlkSucc_iterator BlkSucc_begin(BlkT *BB) { return succ_begin(BB); }
271 static BlkSucc_iterator BlkSucc_end(BlkT *BB) { return succ_end(BB); }
297 /// FindPredecessorBlocks - Put the predecessors of Info->BB into the Preds
299 static void FindPredecessorBlocks(BasicBlock *BB,
304 if (PHINode *SomePhi = dyn_cast<PHINode>(BB->begin()))
307 append_range(*Preds, predecessors(BB));
312 static Value *GetPoisonVal(BasicBlock *BB, SSAUpdater *Updater) {
318 static Value *CreateEmptyPHI(BasicBlock *BB, unsigned NumPreds,
322 PHI->insertBefore(BB->begin());
355 /// Check to see if AvailableVals has an entry for the specified BB and if so,
358 Value *SSAUpdater::GetValueAtEndOfBlockInternal(BasicBlock *BB) {
360 if (Value *V = AvailableVals[BB])
364 return Impl.GetValue(BB);
403 BasicBlock *BB = User->getParent();
404 TinyPtrVector<Instruction *> &BlockUses = UsesByBlock[BB];
415 SSA.AddAvailableValue(BB, SI->getOperand(0));
448 for (Instruction &I : *BB) {
477 SSA.AddAvailableValue(BB, StoredValue);