LLVM API Documentation

Public Member Functions
llvm::LexicalScope Class Reference

#include <LexicalScopes.h>

List of all members.

Public Member Functions

 LexicalScope (LexicalScope *P, const MDNode *D, const MDNode *I, bool A)
virtual ~LexicalScope ()
LexicalScopegetParent () const
const MDNodegetDesc () const
const MDNodegetInlinedAt () const
const MDNodegetScopeNode () const
bool isAbstractScope () const
SmallVector< LexicalScope *, 4 > & getChildren ()
SmallVector< InsnRange, 4 > & getRanges ()
void addChild (LexicalScope *S)
 addChild - Add a child scope.
void openInsnRange (const MachineInstr *MI)
 openInsnRange - This scope covers instruction range starting from MI.
void extendInsnRange (const MachineInstr *MI)
void closeInsnRange (LexicalScope *NewScope=NULL)
bool dominates (const LexicalScope *S) const
 dominates - Return true if current scope dominates given lexical scope.
unsigned getDFSOut () const
void setDFSOut (unsigned O)
unsigned getDFSIn () const
void setDFSIn (unsigned I)
void dump (unsigned Indent=0) const
 dump - print lexical scope.

Detailed Description

LexicalScope - This class is used to track scope information.

Definition at line 155 of file LexicalScopes.h.


Constructor & Destructor Documentation

llvm::LexicalScope::LexicalScope ( LexicalScope P,
const MDNode D,
const MDNode I,
bool  A 
) [inline]

Definition at line 159 of file LexicalScopes.h.

References addChild().

virtual llvm::LexicalScope::~LexicalScope ( ) [inline, virtual]

Definition at line 166 of file LexicalScopes.h.


Member Function Documentation

void llvm::LexicalScope::addChild ( LexicalScope S) [inline]

addChild - Add a child scope.

Definition at line 178 of file LexicalScopes.h.

References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by LexicalScope().

void llvm::LexicalScope::closeInsnRange ( LexicalScope NewScope = NULL) [inline]

closeInsnRange - Create a range based on FirstInsn and LastInsn collected until now. This is used when a new scope is encountered while walking machine instructions.

Definition at line 201 of file LexicalScopes.h.

References closeInsnRange(), dominates(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().

Referenced by closeInsnRange().

bool llvm::LexicalScope::dominates ( const LexicalScope S) const [inline]

dominates - Return true if current scope dominates given lexical scope.

Definition at line 213 of file LexicalScopes.h.

References getDFSIn(), and getDFSOut().

Referenced by closeInsnRange(), and llvm::LexicalScopes::dominates().

void LexicalScope::dump ( unsigned  Indent = 0) const

dump - print lexical scope.

dump - Print data structures.

Definition at line 317 of file LexicalScopes.cpp.

References llvm::dbgs(), llvm::Value::dump(), llvm::SmallVectorBase::empty(), llvm::raw_ostream::indent(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

void llvm::LexicalScope::extendInsnRange ( const MachineInstr MI) [inline]

extendInsnRange - Extend the current instruction range covered by this scope.

Definition at line 191 of file LexicalScopes.h.

References extendInsnRange(), and llvm::A64CC::MI.

Referenced by extendInsnRange().

SmallVector<LexicalScope *, 4>& llvm::LexicalScope::getChildren ( ) [inline]

Definition at line 174 of file LexicalScopes.h.

const MDNode* llvm::LexicalScope::getDesc ( ) const [inline]

Definition at line 170 of file LexicalScopes.h.

unsigned llvm::LexicalScope::getDFSIn ( ) const [inline]

Definition at line 224 of file LexicalScopes.h.

Referenced by dominates().

unsigned llvm::LexicalScope::getDFSOut ( ) const [inline]

Definition at line 222 of file LexicalScopes.h.

Referenced by dominates().

const MDNode* llvm::LexicalScope::getInlinedAt ( ) const [inline]

Definition at line 171 of file LexicalScopes.h.

LexicalScope* llvm::LexicalScope::getParent ( ) const [inline]

Definition at line 169 of file LexicalScopes.h.

SmallVector<InsnRange, 4>& llvm::LexicalScope::getRanges ( ) [inline]

Definition at line 175 of file LexicalScopes.h.

Referenced by llvm::LexicalScopes::getMachineBasicBlocks().

const MDNode* llvm::LexicalScope::getScopeNode ( ) const [inline]
bool llvm::LexicalScope::isAbstractScope ( ) const [inline]

Definition at line 173 of file LexicalScopes.h.

void llvm::LexicalScope::openInsnRange ( const MachineInstr MI) [inline]

openInsnRange - This scope covers instruction range starting from MI.

Definition at line 181 of file LexicalScopes.h.

References llvm::A64CC::MI, and openInsnRange().

Referenced by openInsnRange().

void llvm::LexicalScope::setDFSIn ( unsigned  I) [inline]

Definition at line 225 of file LexicalScopes.h.

References I.

void llvm::LexicalScope::setDFSOut ( unsigned  O) [inline]

Definition at line 223 of file LexicalScopes.h.


The documentation for this class was generated from the following files: