Home | History | Annotate | Download | only in llvm

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();
114 /// BasicBlock can only be used by Users (specifically terminators
133 return const_cast<BasicBlock*>(this)->getFirstNonPHI();
139 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbg();
145 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbgOrLifetime();
153 return const_cast<BasicBlock*>(this)->getFirstInsertionPt();
168 void moveBefore(BasicBlock *MovePos);
172 void moveAfter(BasicBlock *MovePos);
177 BasicBlock *getSinglePredecessor();
178 const BasicBlock *getSinglePredecessor() const {
179 return const_cast<BasicBlock*>(this)->getSinglePredecessor();
187 BasicBlock *getUniquePredecessor();
188 const BasicBlock *getUniquePredecessor() const {
189 return const_cast<BasicBlock*>(this)->getUniquePredecessor();
214 static iplist<Instruction> BasicBlock::*getSublistAccess(Instruction*) {
215 return &BasicBlock::InstList;
222 static inline bool classof(const BasicBlock *) { return true; }
237 /// removePredecessor - This method is used to notify a BasicBlock that the
243 void removePredecessor(BasicBlock *Pred, bool DontDeleteUselessPHIs = false);
249 /// to the new BB, including the old terminator. The newly formed BasicBlock
260 BasicBlock *splitBasicBlock(iterator I, const Twine &BBName = "");
268 void replaceSuccessorsPhiUsesWith(BasicBlock *New);
279 /// AdjustBlockAddressRefCount - BasicBlock stores the number of BlockAddress