LLVM
8.0.1
|
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) | |
LexicalScope * | getParent () const |
const MDNode * | getDesc () const |
const DILocation * | getInlinedAt () const |
const DILocalScope * | getScopeNode () 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... | |
LexicalScope - This class is used to track scope information.
Definition at line 45 of file LexicalScopes.h.
|
inline |
Definition at line 47 of file LexicalScopes.h.
References addChild(), assert(), llvm::DILocalScope::getSubprogram(), llvm::MDNode::isResolved(), and llvm::DICompileUnit::NoDebug.
Referenced by llvm::LexicalScopes::findLexicalScope().
|
inline |
addChild - Add a child scope.
Definition at line 70 of file LexicalScopes.h.
Referenced by LexicalScope().
|
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 93 of file LexicalScopes.h.
References assert(), closeInsnRange(), dominates(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by closeInsnRange(), and llvm::LexicalScopes::getOrCreateAbstractScope().
|
inline |
dominates - Return true if current scope dominates given lexical scope.
Definition at line 105 of file LexicalScopes.h.
References getDFSIn(), and getDFSOut().
Referenced by closeInsnRange(), llvm::LexicalScopes::dominates(), llvm::LexicalScopes::getCurrentFunctionScope(), and llvm::LexicalScopes::getOrCreateAbstractScope().
LLVM_DUMP_METHOD void LexicalScope::dump | ( | unsigned | Indent = 0 | ) | const |
dump - print lexical scope.
Definition at line 322 of file LexicalScopes.cpp.
References llvm::dbgs(), llvm::Metadata::dump(), llvm::raw_ostream::indent(), and N.
Referenced by llvm::LexicalScopes::findLexicalScope(), and setDFSIn().
|
inline |
extendInsnRange - Extend the current instruction range covered by this scope.
Definition at line 83 of file LexicalScopes.h.
References assert(), extendInsnRange(), and MI.
Referenced by extendInsnRange(), and llvm::LexicalScopes::getOrCreateAbstractScope().
|
inline |
Definition at line 66 of file LexicalScopes.h.
Referenced by copyBytesForDefRange(), llvm::DwarfCompileUnit::createScopeChildrenDIE(), llvm::LexicalScopes::getOrCreateAbstractScope(), and llvm::DebugHandlerBase::identifyScopeMarkers().
Definition at line 62 of file LexicalScopes.h.
|
inline |
Definition at line 116 of file LexicalScopes.h.
Referenced by dominates().
|
inline |
Definition at line 114 of file LexicalScopes.h.
Referenced by dominates().
|
inline |
Definition at line 63 of file LexicalScopes.h.
Referenced by llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructScopeDIE(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), and llvm::DwarfDebug::shareAcrossDWOCUs().
|
inline |
Definition at line 61 of file LexicalScopes.h.
Referenced by llvm::DwarfCompileUnit::constructScopeDIE().
|
inline |
Definition at line 67 of file LexicalScopes.h.
Referenced by llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructLexicalScopeDIE(), copyBytesForDefRange(), llvm::LexicalScopes::getMachineBasicBlocks(), llvm::DebugHandlerBase::identifyScopeMarkers(), llvm::DwarfDebug::isLexicalScopeDIENull(), and validThroughout().
|
inline |
Definition at line 64 of file LexicalScopes.h.
Referenced by llvm::DwarfDebug::beginFunctionImpl(), llvm::DwarfCompileUnit::constructAbstractSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DwarfCompileUnit::constructScopeDIE(), copyBytesForDefRange(), llvm::DwarfCompileUnit::createScopeChildrenDIE(), llvm::DwarfDebug::endFunctionImpl(), and llvm::DwarfDebug::shareAcrossDWOCUs().
|
inline |
Definition at line 65 of file LexicalScopes.h.
Referenced by llvm::DwarfCompileUnit::constructLabelDIE(), llvm::DwarfCompileUnit::constructLexicalScopeDIE(), llvm::DwarfCompileUnit::constructSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructVariableDIE(), copyBytesForDefRange(), llvm::DebugHandlerBase::identifyScopeMarkers(), llvm::DwarfDebug::isLexicalScopeDIENull(), and llvm::DwarfDebug::shareAcrossDWOCUs().
|
inline |
openInsnRange - This scope covers instruction range starting from MI.
Definition at line 73 of file LexicalScopes.h.
References MI, and openInsnRange().
Referenced by llvm::LexicalScopes::getOrCreateAbstractScope(), and openInsnRange().
|
inline |
Definition at line 117 of file LexicalScopes.h.
|
inline |
Definition at line 115 of file LexicalScopes.h.
References llvm::RISCVFenceField::O.
Referenced by llvm::LexicalScopes::getOrCreateAbstractScope().