class LexicalScope

Declaration

class LexicalScope { /* full declaration omitted */ };

Description

LexicalScope - This class is used to track scope information.

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:44

Member Variables

private llvm::LexicalScope* Parent
private const llvm::DILocalScope* Desc
private const llvm::DILocation* InlinedAtLocation
private bool AbstractScope
private SmallVector<llvm::LexicalScope*, 4> Children
private SmallVector<llvm::InsnRange, 4> Ranges
private const llvm::MachineInstr* LastInsn = nullptr
private const llvm::MachineInstr* FirstInsn = nullptr
private unsigned int DFSIn = 0
private unsigned int DFSOut = 0

Method Overview

  • public LexicalScope(llvm::LexicalScope * P, const llvm::DILocalScope * D, const llvm::DILocation * I, bool A)
  • public void addChild(llvm::LexicalScope * S)
  • public void closeInsnRange(llvm::LexicalScope * NewScope = nullptr)
  • public bool dominates(const llvm::LexicalScope * S) const
  • public void dump(unsigned int Indent = 0) const
  • public void extendInsnRange(const llvm::MachineInstr * MI)
  • public SmallVectorImpl<llvm::LexicalScope *> & getChildren()
  • public unsigned int getDFSIn() const
  • public unsigned int getDFSOut() const
  • public const llvm::MDNode * getDesc() const
  • public const llvm::DILocation * getInlinedAt() const
  • public llvm::LexicalScope * getParent() const
  • public SmallVectorImpl<llvm::InsnRange> & getRanges()
  • public const llvm::DILocalScope * getScopeNode() const
  • public bool isAbstractScope() const
  • public void openInsnRange(const llvm::MachineInstr * MI)
  • public void setDFSIn(unsigned int I)
  • public void setDFSOut(unsigned int O)

Methods

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

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:46

Parameters

llvm::LexicalScope* P
const llvm::DILocalScope* D
const llvm::DILocation* I
bool A

void addChild(llvm::LexicalScope* S)

Description

addChild - Add a child scope.

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:69

Parameters

llvm::LexicalScope* S

void closeInsnRange(
    llvm::LexicalScope* NewScope = nullptr)

Description

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.

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:92

Parameters

llvm::LexicalScope* NewScope = nullptr

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

Description

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

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:104

Parameters

const llvm::LexicalScope* S

void dump(unsigned int Indent = 0) const

Description

dump - print lexical scope.

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:119

Parameters

unsigned int Indent = 0

void extendInsnRange(const llvm::MachineInstr* MI)

Description

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

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:82

Parameters

const llvm::MachineInstr* MI

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

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:65

unsigned int getDFSIn() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:115

unsigned int getDFSOut() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:113

const llvm::MDNode* getDesc() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:61

const llvm::DILocation* getInlinedAt() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:62

llvm::LexicalScope* getParent() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:60

SmallVectorImpl<llvm::InsnRange>& getRanges()

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:66

const llvm::DILocalScope* getScopeNode() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:63

bool isAbstractScope() const

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:64

void openInsnRange(const llvm::MachineInstr* MI)

Description

openInsnRange - This scope covers instruction range starting from MI.

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:72

Parameters

const llvm::MachineInstr* MI

void setDFSIn(unsigned int I)

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:116

Parameters

unsigned int I

void setDFSOut(unsigned int O)

Declared at: llvm/include/llvm/CodeGen/LexicalScopes.h:114

Parameters

unsigned int O