LLVM  3.7.0
Public Member Functions | List of all members
llvm::LexicalScope Class Reference

LexicalScope - This class is used to track scope information. More...

#include <LexicalScopes.h>

Public Member Functions

 LexicalScope (LexicalScope *P, const DILocalScope *D, const DILocation *I, bool A)
 
LexicalScopegetParent () const
 
const MDNodegetDesc () const
 
const DILocationgetInlinedAt () const
 
const DILocalScopegetScopeNode () 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)
 extendInsnRange - Extend the current instruction range covered by this scope. More...
 
void closeInsnRange (LexicalScope *NewScope=nullptr)
 closeInsnRange - Create a range based on FirstInsn and LastInsn collected until now. More...
 
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 45 of file LexicalScopes.h.

Constructor & Destructor Documentation

llvm::LexicalScope::LexicalScope ( LexicalScope P,
const DILocalScope D,
const DILocation I,
bool  A 
)
inline

Definition at line 48 of file LexicalScopes.h.

References addChild(), and llvm::MDNode::isResolved().

Member Function Documentation

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

addChild - Add a child scope.

Definition at line 68 of file LexicalScopes.h.

Referenced by LexicalScope().

void llvm::LexicalScope::closeInsnRange ( LexicalScope NewScope = nullptr)
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 91 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 103 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 316 of file LexicalScopes.cpp.

References llvm::dbgs(), llvm::Metadata::dump(), llvm::SmallVectorBase::empty(), llvm::raw_ostream::indent(), N, 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 81 of file LexicalScopes.h.

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

Referenced by extendInsnRange().

SmallVectorImpl<LexicalScope *>& llvm::LexicalScope::getChildren ( )
inline

Definition at line 64 of file LexicalScopes.h.

Referenced by llvm::DwarfCompileUnit::createScopeChildrenDIE().

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

Definition at line 60 of file LexicalScopes.h.

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

Definition at line 114 of file LexicalScopes.h.

Referenced by dominates().

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

Definition at line 112 of file LexicalScopes.h.

Referenced by dominates().

const DILocation* llvm::LexicalScope::getInlinedAt ( ) const
inline
LexicalScope* llvm::LexicalScope::getParent ( ) const
inline

Definition at line 59 of file LexicalScopes.h.

Referenced by llvm::DwarfCompileUnit::constructScopeDIE().

SmallVectorImpl<InsnRange>& llvm::LexicalScope::getRanges ( )
inline
const DILocalScope* llvm::LexicalScope::getScopeNode ( ) const
inline
bool llvm::LexicalScope::isAbstractScope ( ) const
inline
void llvm::LexicalScope::openInsnRange ( const MachineInstr MI)
inline

openInsnRange - This scope covers instruction range starting from MI.

Definition at line 71 of file LexicalScopes.h.

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

Referenced by openInsnRange().

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

Definition at line 115 of file LexicalScopes.h.

References I.

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

Definition at line 113 of file LexicalScopes.h.


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