Lines Matching refs:BasicBlock

1 //===-- llvm/BasicBlock.h - Represent a basic block in the VM ---*- C++ -*-===//
10 // This file contains the declaration of the BasicBlock class.
31 : public SymbolTableListTraits<Instruction, BasicBlock> {
59 /// tables. The type of a BasicBlock is "Type::LabelTy" because the basic block
65 /// terminate the blocks. The BasicBlock class allows malformed basic blocks to
70 class BasicBlock : public Value, // Basic blocks are data objects also
71 public ilist_node<BasicBlock> {
80 friend class SymbolTableListTraits<BasicBlock, Function>;
82 BasicBlock(const BasicBlock &); // Do not implement
83 void operator=(const BasicBlock &); // Do not implement
85 /// BasicBlock ctor - If the function parameter is specified, the basic block
89 explicit BasicBlock(LLVMContext &C, const Twine &Name = "",
90 Function *Parent = 0, BasicBlock *InsertBefore = 0);
99 /// Create - Creates a new BasicBlock. If the Parent parameter is specified,
102 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "",
103 Function *Parent = 0,BasicBlock *InsertBefore = 0) {
104 return new BasicBlock(Context, Name, Parent, InsertBefore);
106 ~BasicBlock();
127 return const_cast<BasicBlock*>(this)->getFirstNonPHI();
133 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbg();
139 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbgOrLifetime();
147 return const_cast<BasicBlock*>(this)->getFirstInsertionPt();
162 void moveBefore(BasicBlock *MovePos);
166 void moveAfter(BasicBlock *MovePos);
171 BasicBlock *getSinglePredecessor();
172 const BasicBlock *getSinglePredecessor() const {
173 return const_cast<BasicBlock*>(this)->getSinglePredecessor();
181 BasicBlock *getUniquePredecessor();
182 const BasicBlock *getUniquePredecessor() const {
183 return const_cast<BasicBlock*>(this)->getUniquePredecessor();
208 static iplist<Instruction> BasicBlock::*getSublistAccess(Instruction*) {
209 return &BasicBlock::InstList;
216 static inline bool classof(const BasicBlock *) { return true; }
231 /// removePredecessor - This method is used to notify a BasicBlock that the
237 void removePredecessor(BasicBlock *Pred, bool DontDeleteUselessPHIs = false);
243 /// to the new BB, including the old terminator. The newly formed BasicBlock
254 BasicBlock *splitBasicBlock(iterator I, const Twine &BBName = "");
262 void replaceSuccessorsPhiUsesWith(BasicBlock *New);
274 /// AdjustBlockAddressRefCount - BasicBlock stores the number of BlockAddress