LLVM API Documentation
#include <LexicalScopes.h>
Public Member Functions | |
LexicalScope (LexicalScope *P, const MDNode *D, const MDNode *I, bool A) | |
LexicalScope * | getParent () const |
const MDNode * | getDesc () const |
const MDNode * | getInlinedAt () const |
const MDNode * | getScopeNode () 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) |
void | closeInsnRange (LexicalScope *NewScope=nullptr) |
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. |
LexicalScope - This class is used to track scope information.
Definition at line 45 of file LexicalScopes.h.
llvm::LexicalScope::LexicalScope | ( | LexicalScope * | P, |
const MDNode * | D, | ||
const MDNode * | I, | ||
bool | A | ||
) | [inline] |
Definition at line 48 of file LexicalScopes.h.
References addChild().
void llvm::LexicalScope::addChild | ( | LexicalScope * | S | ) | [inline] |
addChild - Add a child scope.
Definition at line 65 of file LexicalScopes.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
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 88 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 100 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 334 of file LexicalScopes.cpp.
References llvm::dbgs(), llvm::Value::dump(), llvm::SmallVectorBase::empty(), llvm::raw_ostream::indent(), N, 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 78 of file LexicalScopes.h.
References extendInsnRange(), and llvm::AArch64CC::MI.
Referenced by extendInsnRange().
SmallVectorImpl<LexicalScope *>& llvm::LexicalScope::getChildren | ( | ) | [inline] |
Definition at line 61 of file LexicalScopes.h.
const MDNode* llvm::LexicalScope::getDesc | ( | ) | const [inline] |
Definition at line 57 of file LexicalScopes.h.
unsigned llvm::LexicalScope::getDFSIn | ( | ) | const [inline] |
Definition at line 111 of file LexicalScopes.h.
Referenced by dominates().
unsigned llvm::LexicalScope::getDFSOut | ( | ) | const [inline] |
Definition at line 109 of file LexicalScopes.h.
Referenced by dominates().
const MDNode* llvm::LexicalScope::getInlinedAt | ( | ) | const [inline] |
Definition at line 58 of file LexicalScopes.h.
LexicalScope* llvm::LexicalScope::getParent | ( | ) | const [inline] |
Definition at line 56 of file LexicalScopes.h.
SmallVectorImpl<InsnRange>& llvm::LexicalScope::getRanges | ( | ) | [inline] |
Definition at line 62 of file LexicalScopes.h.
Referenced by llvm::LexicalScopes::getMachineBasicBlocks().
const MDNode* llvm::LexicalScope::getScopeNode | ( | ) | const [inline] |
Definition at line 59 of file LexicalScopes.h.
Referenced by llvm::DwarfDebug::beginFunction(), and llvm::DwarfDebug::endFunction().
bool llvm::LexicalScope::isAbstractScope | ( | ) | const [inline] |
Definition at line 60 of file LexicalScopes.h.
Referenced by constructVariableDIE().
void llvm::LexicalScope::openInsnRange | ( | const MachineInstr * | MI | ) | [inline] |
openInsnRange - This scope covers instruction range starting from MI.
Definition at line 68 of file LexicalScopes.h.
References llvm::AArch64CC::MI, and openInsnRange().
Referenced by openInsnRange().
void llvm::LexicalScope::setDFSIn | ( | unsigned | I | ) | [inline] |
Definition at line 112 of file LexicalScopes.h.
References I.
void llvm::LexicalScope::setDFSOut | ( | unsigned | O | ) | [inline] |
Definition at line 110 of file LexicalScopes.h.