clang 20.0.0git
|
#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 VariableArrayType * | FindVA (QualType Ty) |
static const Expr * | LookThroughExpr (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) |
|
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().
|
static |
Definition at line 211 of file LiveVariables.cpp.
References E, LookThroughExpr(), and clang::Set.
Referenced by AddAllConditionalTerms().
|
static |
Definition at line 181 of file LiveVariables.cpp.
References clang::QualType::getTypePtr().
|
static |
Definition at line 59 of file LiveVariables.cpp.
Referenced by clang::LiveVariables::dumpBlockLiveness(), clang::LiveVariables::dumpExprLiveness(), clang::LiveVariables::isLive(), and clang::LiveVariables::runOnAllBlocks().
Definition at line 137 of file LiveVariables.cpp.
References D.
Referenced by clang::LiveVariables::isLive(), and writeShouldKill().
Definition at line 194 of file LiveVariables.cpp.
References E, and clang::Expr::IgnoreParens().
Referenced by AddLiveExpr().
Definition at line 364 of file LiveVariables.cpp.
References clang::ValueDecl::getType(), isAlwaysAlive(), and clang::Type::isReferenceType().