Lines Matching full:basic
1 //===- llvm/BasicBlock.h - Represent a basic block in the VM ----*- C++ -*-===//
45 /// LLVM Basic Block Representation
47 /// This represents a single basic block in LLVM. A basic block is simply a
48 /// container of instructions that execute sequentially. Basic blocks are Values
50 /// tables. The type of a BasicBlock is "Type::LabelTy" because the basic block
53 /// A well formed basic block is formed of a list of non-terminating
55 /// instructions may not occur in the middle of basic blocks, and must terminate
56 /// the blocks. The BasicBlock class allows malformed basic blocks to occur
58 /// modifying a program. However, the verifier will ensure that basic blocks are
60 class BasicBlock final : public Value, // Basic blocks are data objects also
101 /// that exist at the end of a basic block with no terminator (a transient
151 /// If the function parameter is specified, the basic block is automatically
153 /// before the specified basic block.
163 /// Get the context in which this basic block lives.
199 /// If the Parent parameter is specified, the basic block is automatically
201 /// before the specified basic block.
212 /// Return the module owning the function this basic block belongs to, or
222 /// Get the data layout of the module this basic block belongs to.
224 /// Requires the basic block to have a parent module.
240 /// prior to the terminating return instruction of this basic block, if such
249 /// that is present either in current basic block or in block that is a unique
258 /// return instruction of this basic block, if such a call is present.
269 /// When adding instructions to the beginning of the basic block, they should
351 /// Return the size of the basic block ignoring debug instructions
364 /// Unlink this basic block from its current function and insert it into
371 /// Unlink this basic block from its current function and insert it
375 /// Insert unlinked basic block into a function.
377 /// Inserts an unlinked basic block into \c Parent. If \c InsertBefore is
378 /// provided, inserts before that basic block, otherwise inserts at the end.
429 /// Print the basic block to an output stream with an optional
466 /// Iterator to walk just the phi nodes in the basic block.
504 /// Returns a range that iterates over the phis in the basic block.
506 /// Note that this cannot be used with basic blocks that have no terminator.
573 /// Split the basic block into two basic blocks at the specified instruction.
579 /// stay as part of the original basic block, an unconditional branch is added
581 /// to the new BB, including the old terminator. The newly formed basic block
584 /// Note that this only works on well formed basic blocks (must have a
586 /// would cause a degenerate basic block to be formed, having a terminator
587 /// inside of the basic block).
598 /// Split the basic block into two basic blocks at the specified instruction
599 /// and insert the new basic blocks as the predecessor of the current block.
602 /// iterator \p I are part of the original basic block. All Instructions
604 /// branch is added to the new BB. The new basic block is returned.
606 /// Note that this only works on well formed basic blocks (must have a
608 /// would cause a degenerate basic block to be formed, having a terminator
609 /// inside of the basic block). \p 'I' cannot be a iterator for a PHINode
620 /// Transfer all instructions from \p FromBB to this basic block at \p ToIt.
625 /// Transfer one instruction from \p FromBB at \p FromIt to this basic block
637 /// FromBeginIt to \p FromEndIt, to this basic block at \p ToIt.
646 /// Returns true if there are any uses of this basic block other than
652 /// Update all phi nodes in this basic block to refer to basic block \p New
653 /// instead of basic block \p Old.
656 /// Update all phi nodes in this basic block's successors to refer to basic
657 /// block \p New instead of basic block \p Old.
660 /// Update all phi nodes in this basic block's successors to refer to basic
664 /// Return true if this basic block is an exception handling block.
667 /// Return true if this basic block is a landing pad.
669 /// Being a ``landing pad'' means that the basic block is the destination of