Home | History | Annotate | Download | only in IR

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.
32 : public SymbolTableListTraits<Instruction, BasicBlock> {
62 /// tables. The type of a BasicBlock is "Type::LabelTy" because the basic block
68 /// terminate the blocks. The BasicBlock class allows malformed basic blocks to
72 class BasicBlock : public Value, // Basic blocks are data objects also
73 public ilist_node<BasicBlock> {
82 friend class SymbolTableListTraits<BasicBlock, Function>;
84 BasicBlock(const BasicBlock &) LLVM_DELETED_FUNCTION;
85 void operator=(const BasicBlock &) LLVM_DELETED_FUNCTION;
92 explicit BasicBlock(LLVMContext &C, const Twine &Name = "",
94 BasicBlock *InsertBefore = nullptr);
105 /// \brief Creates a new BasicBlock.
110 static BasicBlock *Create(LLVMContext &Context, const Twine &Name = "",
112 BasicBlock *InsertBefore = nullptr) {
113 return new BasicBlock(Context, Name, Parent, InsertBefore);
115 ~BasicBlock();
136 return const_cast<BasicBlock*>(this)->getFirstNonPHI();
143 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbg();
150 return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbgOrLifetime();
159 return const_cast<BasicBlock*>(this)->getFirstInsertionPt();
170 void moveBefore(BasicBlock *MovePos);
174 void moveAfter(BasicBlock *MovePos);
179 BasicBlock *getSinglePredecessor();
180 const BasicBlock *getSinglePredecessor() const {
181 return const_cast<BasicBlock*>(this)->getSinglePredecessor();
190 BasicBlock *getUniquePredecessor();
191 const BasicBlock *getUniquePredecessor() const {
192 return const_cast<BasicBlock*>(this)->getUniquePredecessor();
223 static iplist<Instruction> BasicBlock::*getSublistAccess(Instruction*) {
224 return &BasicBlock::InstList;
245 /// \brief Notify the BasicBlock that the predecessor \p Pred is no longer
251 void removePredecessor(BasicBlock *Pred, bool DontDeleteUselessPHIs = false);
259 /// including the old terminator. The newly formed BasicBlock is returned.
269 BasicBlock *splitBasicBlock(iterator I, const Twine &BBName = "");
277 void replaceSuccessorsPhiUsesWith(BasicBlock *New);
291 /// referencing this BasicBlock by \p Amt.
308 DEFINE_SIMPLE_CONVERSION_FUNCTIONS(BasicBlock, LLVMBasicBlockRef)