clang 20.0.0git
Functions
LiveVariables.cpp File Reference
#include "clang/Analysis/Analyses/LiveVariables.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/Analysis/AnalysisDeclContext.h"
#include "clang/Analysis/CFG.h"
#include "clang/Analysis/FlowSensitive/DataflowWorklist.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <optional>
#include <vector>

Go to the source code of this file.

Functions

static LiveVariablesImpl & getImpl (void *x)
 
static bool isAlwaysAlive (const VarDecl *D)
 
static const VariableArrayTypeFindVA (QualType Ty)
 
static const ExprLookThroughExpr (const Expr *E)
 
static void AddLiveExpr (llvm::ImmutableSet< const Expr * > &Set, llvm::ImmutableSet< const Expr * >::Factory &F, const Expr *E)
 
static void AddAllConditionalTerms (llvm::ImmutableSet< const Expr * > &Set, llvm::ImmutableSet< const Expr * >::Factory &F, const Expr *Cond)
 Add as a live expression all individual conditions in a logical expression.
 
static bool writeShouldKill (const VarDecl *VD)
 

Function Documentation

◆ AddAllConditionalTerms()

static void AddAllConditionalTerms ( llvm::ImmutableSet< const Expr * > &  Set,
llvm::ImmutableSet< const Expr * >::Factory &  F,
const Expr Cond 
)
static

Add as a live expression all individual conditions in a logical expression.

For example, for the expression: "(a < b) || (c && d && ((e || f) != (g && h)))" the following expressions will be added as live: "a < b", "c", "d", "((e || f) != (g && h))"

Definition at line 222 of file LiveVariables.cpp.

References AddAllConditionalTerms(), AddLiveExpr(), clang::Expr::IgnoreParens(), and clang::Set.

Referenced by AddAllConditionalTerms().

◆ AddLiveExpr()

static void AddLiveExpr ( llvm::ImmutableSet< const Expr * > &  Set,
llvm::ImmutableSet< const Expr * >::Factory &  F,
const Expr E 
)
static

Definition at line 211 of file LiveVariables.cpp.

References E, LookThroughExpr(), and clang::Set.

Referenced by AddAllConditionalTerms().

◆ FindVA()

static const VariableArrayType * FindVA ( QualType  Ty)
static

Definition at line 181 of file LiveVariables.cpp.

References clang::QualType::getTypePtr().

◆ getImpl()

static LiveVariablesImpl & getImpl ( void *  x)
static

◆ isAlwaysAlive()

static bool isAlwaysAlive ( const VarDecl D)
static

Definition at line 137 of file LiveVariables.cpp.

References D.

Referenced by clang::LiveVariables::isLive(), and writeShouldKill().

◆ LookThroughExpr()

static const Expr * LookThroughExpr ( const Expr E)
static

Definition at line 194 of file LiveVariables.cpp.

References E, and clang::Expr::IgnoreParens().

Referenced by AddLiveExpr().

◆ writeShouldKill()

static bool writeShouldKill ( const VarDecl VD)
static