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

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

#include "llvm/CodeGen/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.
 
void openInsnRange (const MachineInstr *MI)
 openInsnRange - This scope covers instruction range starting from MI.
 
void extendInsnRange (const MachineInstr *MI)
 extendInsnRange - Extend the current instruction range covered by this scope.
 
void closeInsnRange (LexicalScope *NewScope=nullptr)
 closeInsnRange - Create a range based on FirstInsn and LastInsn collected until now.
 
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 44 of file LexicalScopes.h.

Constructor & Destructor Documentation

◆ LexicalScope()

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

Definition at line 46 of file LexicalScopes.h.

References addChild(), assert(), D, I, and llvm::DICompileUnit::NoDebug.

Member Function Documentation

◆ addChild()

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

addChild - Add a child scope.

Definition at line 69 of file LexicalScopes.h.

Referenced by LexicalScope().

◆ closeInsnRange()

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 92 of file LexicalScopes.h.

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

Referenced by closeInsnRange().

◆ dominates()

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

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

Definition at line 104 of file LexicalScopes.h.

References getDFSIn(), and getDFSOut().

Referenced by closeInsnRange().

◆ dump()

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

dump - print lexical scope.

Definition at line 331 of file LexicalScopes.cpp.

References llvm::dbgs(), llvm::raw_ostream::indent(), and N.

◆ extendInsnRange()

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

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

Definition at line 82 of file LexicalScopes.h.

References assert(), extendInsnRange(), and MI.

Referenced by extendInsnRange().

◆ getChildren()

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

Definition at line 65 of file LexicalScopes.h.

Referenced by llvm::DebugHandlerBase::identifyScopeMarkers().

◆ getDesc()

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

Definition at line 61 of file LexicalScopes.h.

◆ getDFSIn()

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

Definition at line 115 of file LexicalScopes.h.

Referenced by dominates().

◆ getDFSOut()

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

Definition at line 113 of file LexicalScopes.h.

Referenced by dominates().

◆ getInlinedAt()

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

Definition at line 62 of file LexicalScopes.h.

◆ getParent()

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

Definition at line 60 of file LexicalScopes.h.

◆ getRanges()

SmallVectorImpl< InsnRange > & llvm::LexicalScope::getRanges ( )
inline

◆ getScopeNode()

const DILocalScope * llvm::LexicalScope::getScopeNode ( ) const
inline

◆ isAbstractScope()

bool llvm::LexicalScope::isAbstractScope ( ) const
inline

Definition at line 64 of file LexicalScopes.h.

Referenced by llvm::DebugHandlerBase::identifyScopeMarkers().

◆ openInsnRange()

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

openInsnRange - This scope covers instruction range starting from MI.

Definition at line 72 of file LexicalScopes.h.

References MI, and openInsnRange().

Referenced by openInsnRange().

◆ setDFSIn()

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

Definition at line 116 of file LexicalScopes.h.

References I.

◆ setDFSOut()

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

Definition at line 114 of file LexicalScopes.h.


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