Lines Matching defs:BB

27 static std::vector<BasicBlock *> getDominators(BasicBlock *BB) {
29 DominatorTree DT(*BB->getParent());
30 DomTreeNode *Node = DT.getNode(BB);
46 static std::vector<BasicBlock *> getDominatees(BasicBlock *BB) {
47 DominatorTree DT(*BB->getParent());
49 DomTreeNode *Parent = DT.getNode(BB);
109 Value *RandomIRBuilder::findOrCreateSource(BasicBlock &BB,
111 return findOrCreateSource(BB, Insts, {}, anyType());
114 Value *RandomIRBuilder::findOrCreateSource(BasicBlock &BB,
134 Function *F = BB.getParent();
146 auto Dominators = getDominators(&BB);
163 Module *M = BB.getParent()->getParent();
167 if (BB.getTerminator()) {
168 LoadGV = new LoadInst(Ty, GV, "LGV", BB.getFirstInsertionPt());
170 LoadGV = new LoadInst(Ty, GV, "LGV", &BB);
187 return newSource(BB, Insts, Srcs, Pred, allowConstant);
198 Value *RandomIRBuilder::newSource(BasicBlock &BB, ArrayRef<Instruction *> Insts,
206 Value *Ptr = findPointer(BB, Insts);
209 auto IP = BB.getFirstInsertionPt();
212 assert(IP != BB.end() && "guaranteed by the findPointer");
231 Function *F = BB.getParent();
233 if (BB.getTerminator()) {
235 BB.getTerminator()->getIterator());
237 newSrc = new LoadInst(Ty, Alloca, /*ArrLen,*/ "L", &BB);
291 Instruction *RandomIRBuilder::connectToSink(BasicBlock &BB,
324 auto Dominators = getDominators(&BB);
335 auto Dominatees = getDominatees(&BB);
350 return newSink(BB, Insts, V);
352 Module *M = BB.getParent()->getParent();
365 Instruction *RandomIRBuilder::newSink(BasicBlock &BB,
367 Value *Ptr = findPointer(BB, Insts);
371 Ptr = createStackMemory(BB.getParent(), Ty, PoisonValue::get(Ty));
380 Value *RandomIRBuilder::findPointer(BasicBlock &BB,
427 BasicBlock *BB = BasicBlock::Create(Context, "BB", F);
431 new AllocaInst(RetTy, DL.getAllocaAddrSpace(), "RP", BB);
432 Instruction *RetLoad = new LoadInst(RetTy, RetAlloca, "", BB);
433 ReturnInst::Create(Context, RetLoad, BB);
435 ReturnInst::Create(Context, BB);