LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::LexicalScope Class Reference

#include <LexicalScopes.h>

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
 
SmallVectorImpl< LexicalScope * > & getChildren ()
 
SmallVectorImpl< InsnRange > & getRanges ()
 
void addChild (LexicalScope *S)
 addChild - Add a child scope. More...
 
void openInsnRange (const MachineInstr *MI)
 openInsnRange - This scope covers instruction range starting from MI. More...
 
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. More...
 
unsigned getDFSOut () const
 
void setDFSOut (unsigned O)
 
unsigned getDFSIn () const
 
void setDFSIn (unsigned I)
 
void dump (unsigned Indent=0) const
 dump - print lexical scope. More...
 

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 ( )
inlinevirtual

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.

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 >::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().

SmallVectorImpl<LexicalScope *>& 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.

SmallVectorImpl<InsnRange>& 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: