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.