Lines Matching full:bb

27 static std::vector<BasicBlock *> getDominators(BasicBlock *BB) {  in getDominators()  argument
29 DominatorTree DT(*BB->getParent()); in getDominators()
30 DomTreeNode *Node = DT.getNode(BB); in getDominators()
46 static std::vector<BasicBlock *> getDominatees(BasicBlock *BB) { in getDominatees() argument
47 DominatorTree DT(*BB->getParent()); in getDominatees()
49 DomTreeNode *Parent = DT.getNode(BB); in getDominatees()
109 Value *RandomIRBuilder::findOrCreateSource(BasicBlock &BB, in findOrCreateSource() argument
111 return findOrCreateSource(BB, Insts, {}, anyType()); in findOrCreateSource()
114 Value *RandomIRBuilder::findOrCreateSource(BasicBlock &BB, in findOrCreateSource() argument
134 Function *F = BB.getParent(); in findOrCreateSource()
146 auto Dominators = getDominators(&BB); in findOrCreateSource()
163 Module *M = BB.getParent()->getParent(); in findOrCreateSource()
167 if (BB.getTerminator()) { in findOrCreateSource()
168 LoadGV = new LoadInst(Ty, GV, "LGV", &*BB.getFirstInsertionPt()); in findOrCreateSource()
170 LoadGV = new LoadInst(Ty, GV, "LGV", &BB); in findOrCreateSource()
187 return newSource(BB, Insts, Srcs, Pred, allowConstant); in findOrCreateSource()
198 Value *RandomIRBuilder::newSource(BasicBlock &BB, ArrayRef<Instruction *> Insts, in newSource() argument
206 Value *Ptr = findPointer(BB, Insts); in newSource()
209 auto IP = BB.getFirstInsertionPt(); in newSource()
212 assert(IP != BB.end() && "guaranteed by the findPointer"); in newSource()
231 Function *F = BB.getParent(); in newSource()
233 if (BB.getTerminator()) { in newSource()
234 newSrc = new LoadInst(Ty, Alloca, /*ArrLen,*/ "L", BB.getTerminator()); in newSource()
236 newSrc = new LoadInst(Ty, Alloca, /*ArrLen,*/ "L", &BB); in newSource()
290 Instruction *RandomIRBuilder::connectToSink(BasicBlock &BB, in connectToSink() argument
323 auto Dominators = getDominators(&BB); in connectToSink()
334 auto Dominatees = getDominatees(&BB); in connectToSink()
349 return newSink(BB, Insts, V); in connectToSink()
351 Module *M = BB.getParent()->getParent(); in connectToSink()
364 Instruction *RandomIRBuilder::newSink(BasicBlock &BB, in newSink() argument
366 Value *Ptr = findPointer(BB, Insts); in newSink()
370 Ptr = createStackMemory(BB.getParent(), Ty, UndefValue::get(Ty)); in newSink()
379 Value *RandomIRBuilder::findPointer(BasicBlock &BB, in findPointer() argument
426 BasicBlock *BB = BasicBlock::Create(Context, "BB", F); in createFunctionDefinition() local
430 new AllocaInst(RetTy, DL.getAllocaAddrSpace(), "RP", BB); in createFunctionDefinition()
431 Instruction *RetLoad = new LoadInst(RetTy, RetAlloca, "", BB); in createFunctionDefinition()
432 ReturnInst::Create(Context, RetLoad, BB); in createFunctionDefinition()
434 ReturnInst::Create(Context, BB); in createFunctionDefinition()