LLVM
8.0.1
|
Hold analysis information for every loop detected by VPLoopInfo. More...
#include "Transforms/Vectorize/VPlanLoopInfo.h"
Friends | |
class | LoopInfoBase< VPBlockBase, VPLoop > |
Additional Inherited Members | |
Public Types inherited from llvm::LoopBase< VPBlockBase, VPLoop > | |
typedef std::vector< VPLoop *>::const_iterator | iterator |
typedef std::vector< VPLoop *>::const_reverse_iterator | reverse_iterator |
typedef ArrayRef< VPBlockBase *>::const_iterator | block_iterator |
typedef std::pair< const VPBlockBase *, const VPBlockBase *> | Edge |
Edge type. More... | |
Public Member Functions inherited from llvm::LoopBase< VPBlockBase, VPLoop > | |
unsigned | getLoopDepth () const |
Return the nesting level of this loop. More... | |
VPBlockBase * | getHeader () const |
VPLoop * | getParentLoop () const |
void | setParentLoop (VPLoop *L) |
This is a raw interface for bypassing addChildLoop. More... | |
bool | contains (const VPLoop *L) const |
Return true if the specified loop is contained within in this loop. More... | |
bool | contains (const VPBlockBase *BB) const |
Return true if the specified basic block is in this loop. More... | |
bool | contains (const InstT *Inst) const |
Return true if the specified instruction is in this loop. More... | |
const std::vector< VPLoop *> & | getSubLoops () const |
Return the loops contained entirely within this loop. More... | |
std::vector< VPLoop *> & | getSubLoopsVector () |
iterator | begin () const |
iterator | end () const |
reverse_iterator | rbegin () const |
reverse_iterator | rend () const |
bool | empty () const |
ArrayRef< VPBlockBase *> | getBlocks () const |
Get a list of the basic blocks which make up this loop. More... | |
block_iterator | block_begin () const |
block_iterator | block_end () const |
iterator_range< block_iterator > | blocks () const |
unsigned | getNumBlocks () const |
Get the number of blocks in this loop in constant time. More... | |
std::vector< VPBlockBase *> & | getBlocksVector () |
Return a direct, mutable handle to the blocks vector so that we can mutate it efficiently with techniques like std::remove . More... | |
SmallPtrSetImpl< const VPBlockBase *> & | getBlocksSet () |
Return a direct, mutable handle to the blocks set so that we can mutate it efficiently. More... | |
const SmallPtrSetImpl< const VPBlockBase *> & | getBlocksSet () const |
Return a direct, immutable handle to the blocks set. More... | |
bool | isInvalid () const |
Return true if this loop is no longer valid. More... | |
bool | isLoopExiting (const VPBlockBase *BB) const |
True if terminator in the block can branch to another block that is outside of the current loop. More... | |
bool | isLoopLatch (const VPBlockBase *BB) const |
unsigned | getNumBackEdges () const |
Calculate the number of back edges to the loop header. More... | |
void | getExitingBlocks (SmallVectorImpl< VPBlockBase * > &ExitingBlocks) const |
Return all blocks inside the loop that have successors outside of the loop. More... | |
VPBlockBase * | getExitingBlock () const |
If getExitingBlocks would return exactly one block, return that block. More... | |
void | getExitBlocks (SmallVectorImpl< VPBlockBase * > &ExitBlocks) const |
Return all of the successor blocks of this loop. More... | |
VPBlockBase * | getExitBlock () const |
If getExitBlocks would return exactly one block, return that block. More... | |
bool | hasDedicatedExits () const |
Return true if no exit block for the loop has a predecessor that is outside the loop. More... | |
void | getUniqueExitBlocks (SmallVectorImpl< VPBlockBase * > &ExitBlocks) const |
Return all unique successor blocks of this loop. More... | |
VPBlockBase * | getUniqueExitBlock () const |
If getUniqueExitBlocks would return exactly one block, return that block. More... | |
void | getExitEdges (SmallVectorImpl< Edge > &ExitEdges) const |
Return all pairs of (inside_block,outside_block). More... | |
VPBlockBase * | getLoopPreheader () const |
If there is a preheader for this loop, return it. More... | |
VPBlockBase * | getLoopPredecessor () const |
If the given loop's header has exactly one unique predecessor outside the loop, return it. More... | |
VPBlockBase * | getLoopLatch () const |
If there is a single latch block for this loop, return it. More... | |
void | getLoopLatches (SmallVectorImpl< VPBlockBase * > &LoopLatches) const |
Return all loop latch blocks of this loop. More... | |
void | addBasicBlockToLoop (VPBlockBase *NewBB, LoopInfoBase< VPBlockBase, VPLoop > &LI) |
This method is used by other analyses to update loop information. More... | |
void | replaceChildLoopWith (VPLoop *OldChild, VPLoop *NewChild) |
This is used when splitting loops up. More... | |
void | addChildLoop (VPLoop *NewChild) |
Add the specified loop to be a child of this loop. More... | |
VPLoop * | removeChildLoop (iterator I) |
This removes the specified child from being a subloop of this loop. More... | |
VPLoop * | removeChildLoop (VPLoop *Child) |
This removes the specified child from being a subloop of this loop. More... | |
void | addBlockEntry (VPBlockBase *BB) |
This adds a basic block directly to the basic block list. More... | |
void | reverseBlock (unsigned from) |
interface to reverse Blocks[from, end of loop] in this loop More... | |
void | reserveBlocks (unsigned size) |
interface to do reserve() for Blocks More... | |
void | moveToHeader (VPBlockBase *BB) |
This method is used to move BB (which must be part of this loop) to be the loop header of the loop (the block that dominates all others). More... | |
void | removeBlockFromLoop (VPBlockBase *BB) |
This removes the specified basic block from the current loop, updating the Blocks as appropriate. More... | |
void | verifyLoop () const |
Verify loop structure. More... | |
void | verifyLoopNest (DenseSet< const VPLoop * > *Loops) const |
Verify loop structure of this loop and all nested loops. More... | |
bool | isAnnotatedParallel () const |
Returns true if the loop is annotated parallel. More... | |
void | print (raw_ostream &OS, unsigned Depth=0, bool Verbose=false) const |
Print loop with all the BBs inside it. More... | |
Protected Member Functions inherited from llvm::LoopBase< VPBlockBase, VPLoop > | |
LoopBase () | |
This creates an empty loop. More... | |
LoopBase (VPBlockBase *BB) | |
~LoopBase () | |
Hold analysis information for every loop detected by VPLoopInfo.
It is an instantiation of LoopBase.
Definition at line 28 of file VPlanLoopInfo.h.
|
friend |
Definition at line 30 of file VPlanLoopInfo.h.