clang  6.0.0svn
Classes | Public Member Functions | Static Public Member Functions | List of all members
clang::LiveVariables Class Reference

#include "clang/Analysis/Analyses/LiveVariables.h"

Inheritance diagram for clang::LiveVariables:
Inheritance graph
[legend]
Collaboration diagram for clang::LiveVariables:
Collaboration graph
[legend]

Classes

class  LivenessValues
 
class  Observer
 

Public Member Functions

 ~LiveVariables () override
 
bool isLive (const CFGBlock *B, const VarDecl *D)
 Return true if a variable is live at the end of a specified block. More...
 
bool isLive (const Stmt *S, const VarDecl *D)
 Returns true if a variable is live at the beginning of the the statement. More...
 
bool isLive (const Stmt *Loc, const Stmt *StmtVal)
 Returns true the block-level expression "value" is live before the given block-level expression (see runOnAllBlocks). More...
 
void dumpBlockLiveness (const SourceManager &M)
 Print to stderr the liveness information associated with each basic block. More...
 
void runOnAllBlocks (Observer &obs)
 
- Public Member Functions inherited from clang::ManagedAnalysis
virtual ~ManagedAnalysis ()
 

Static Public Member Functions

static LiveVariablescomputeLiveness (AnalysisDeclContext &analysisContext, bool killAtAssign)
 Compute the liveness information for a given CFG. More...
 
static LiveVariablescreate (AnalysisDeclContext &analysisContext)
 
static const void * getTag ()
 

Additional Inherited Members

- Protected Member Functions inherited from clang::ManagedAnalysis
 ManagedAnalysis ()
 

Detailed Description

Definition at line 29 of file LiveVariables.h.

Constructor & Destructor Documentation

◆ ~LiveVariables()

LiveVariables::~LiveVariables ( )
override

Definition at line 473 of file LiveVariables.cpp.

Referenced by clang::LiveVariables::Observer::observerKill().

Member Function Documentation

◆ computeLiveness()

LiveVariables * LiveVariables::computeLiveness ( AnalysisDeclContext analysisContext,
bool  killAtAssign 
)
static

◆ create()

static LiveVariables* clang::LiveVariables::create ( AnalysisDeclContext analysisContext)
inlinestatic

◆ dumpBlockLiveness()

void LiveVariables::dumpBlockLiveness ( const SourceManager M)

Print to stderr the liveness information associated with each basic block.

Definition at line 555 of file LiveVariables.cpp.

References clang::CFGBlock::getBlockID(), getImpl(), clang::Decl::getLocStart(), clang::BinaryOperator::getLocStart(), and clang::LiveVariables::LivenessValues::liveDecls.

◆ getTag()

const void * LiveVariables::getTag ( )
static

Definition at line 601 of file LiveVariables.cpp.

Referenced by create(), and clang::RelaxedLiveVariables::create().

◆ isLive() [1/3]

bool LiveVariables::isLive ( const CFGBlock B,
const VarDecl D 
)

Return true if a variable is live at the end of a specified block.

Definition at line 170 of file LiveVariables.cpp.

References getImpl(), and isAlwaysAlive().

◆ isLive() [2/3]

bool LiveVariables::isLive ( const Stmt S,
const VarDecl D 
)

Returns true if a variable is live at the beginning of the the statement.

This query only works if liveness information has been recorded at the statement level (see runOnAllBlocks), and only returns liveness information for block-level expressions.

Definition at line 174 of file LiveVariables.cpp.

◆ isLive() [3/3]

bool LiveVariables::isLive ( const Stmt Loc,
const Stmt StmtVal 
)

Returns true the block-level expression "value" is live before the given block-level expression (see runOnAllBlocks).

Definition at line 178 of file LiveVariables.cpp.

◆ runOnAllBlocks()

void LiveVariables::runOnAllBlocks ( LiveVariables::Observer obs)

Definition at line 465 of file LiveVariables.cpp.

References clang::CFG::begin(), clang::CFG::end(), and getImpl().


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