clang 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::threadSafety::til::VisitReducer< Self > Class Template Reference

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

Inheritance diagram for clang::threadSafety::til::VisitReducer< Self >:
Inheritance graph
[legend]

Public Member Functions

 VisitReducer ()=default
 
R_SExpr reduceNull ()
 
R_SExpr reduceUndefined (Undefined &Orig)
 
R_SExpr reduceWildcard (Wildcard &Orig)
 
R_SExpr reduceLiteral (Literal &Orig)
 
template<class T >
R_SExpr reduceLiteralT (LiteralT< T > &Orig)
 
R_SExpr reduceLiteralPtr (Literal &Orig)
 
R_SExpr reduceFunction (Function &Orig, Variable *Nvd, R_SExpr E0)
 
R_SExpr reduceSFunction (SFunction &Orig, Variable *Nvd, R_SExpr E0)
 
R_SExpr reduceCode (Code &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceField (Field &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceApply (Apply &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceSApply (SApply &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceProject (Project &Orig, R_SExpr E0)
 
R_SExpr reduceCall (Call &Orig, R_SExpr E0)
 
R_SExpr reduceAlloc (Alloc &Orig, R_SExpr E0)
 
R_SExpr reduceLoad (Load &Orig, R_SExpr E0)
 
R_SExpr reduceStore (Store &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceArrayIndex (Store &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceArrayAdd (Store &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceUnaryOp (UnaryOp &Orig, R_SExpr E0)
 
R_SExpr reduceBinaryOp (BinaryOp &Orig, R_SExpr E0, R_SExpr E1)
 
R_SExpr reduceCast (Cast &Orig, R_SExpr E0)
 
R_SExpr reduceSCFG (SCFG &Orig, Container< BasicBlock * > Bbs)
 
R_BasicBlock reduceBasicBlock (BasicBlock &Orig, Container< R_SExpr > &As, Container< R_SExpr > &Is, R_SExpr T)
 
R_SExpr reducePhi (Phi &Orig, Container< R_SExpr > &As)
 
R_SExpr reduceGoto (Goto &Orig, BasicBlock *B)
 
R_SExpr reduceBranch (Branch &O, R_SExpr C, BasicBlock *B0, BasicBlock *B1)
 
R_SExpr reduceReturn (Return &O, R_SExpr E)
 
R_SExpr reduceIdentifier (Identifier &Orig)
 
R_SExpr reduceIfThenElse (IfThenElse &Orig, R_SExpr C, R_SExpr T, R_SExpr E)
 
R_SExpr reduceLet (Let &Orig, Variable *Nvd, R_SExpr B)
 
VariableenterScope (Variable &Orig, R_SExpr E0)
 
void exitScope (const Variable &Orig)
 
void enterCFG (SCFG &Cfg)
 
void exitCFG (SCFG &Cfg)
 
void enterBasicBlock (BasicBlock &BB)
 
void exitBasicBlock (BasicBlock &BB)
 
VariablereduceVariableRef (Variable *Ovd)
 
BasicBlockreduceBasicBlockRef (BasicBlock *Obb)
 
bool traverse (SExpr *E, TraversalKind K=TRV_Normal)
 
- Public Member Functions inherited from clang::threadSafety::til::Traversal< Self, VisitReducerBase >
Self * self ()
 
R::R_SExpr traverse (T *&E, typename R::R_Ctx Ctx)
 
R::R_SExpr traverseSExpr (SExpr *E, typename R::R_Ctx Ctx)
 
R::R_SExpr traverseByCase (SExpr *E, typename R::R_Ctx Ctx)
 
- Public Member Functions inherited from clang::threadSafety::til::SimpleReducerBase
R_Ctx subExprCtx (R_Ctx Ctx)
 
R_Ctx declCtx (R_Ctx Ctx)
 
R_Ctx lazyCtx (R_Ctx Ctx)
 
R_Ctx typeCtx (R_Ctx Ctx)
 

Static Public Member Functions

static bool visit (SExpr *E)
 

Additional Inherited Members

- Public Types inherited from clang::threadSafety::til::VisitReducerBase
using R_SExpr = bool
 
using R_BasicBlock = bool
 
- Public Types inherited from clang::threadSafety::til::SimpleReducerBase
enum  TraversalKind { TRV_Normal , TRV_Decl , TRV_Lazy , TRV_Type }
 
using R_Ctx = TraversalKind
 

Detailed Description

template<class Self>
class clang::threadSafety::til::VisitReducer< Self >

Definition at line 185 of file ThreadSafetyTraverse.h.

Constructor & Destructor Documentation

◆ VisitReducer()

template<class Self >
clang::threadSafety::til::VisitReducer< Self >::VisitReducer ( )
default

Member Function Documentation

◆ enterBasicBlock()

template<class Self >
void clang::threadSafety::til::VisitReducer< Self >::enterBasicBlock ( BasicBlock BB)
inline

Definition at line 287 of file ThreadSafetyTraverse.h.

◆ enterCFG()

template<class Self >
void clang::threadSafety::til::VisitReducer< Self >::enterCFG ( SCFG Cfg)
inline

Definition at line 285 of file ThreadSafetyTraverse.h.

◆ enterScope()

template<class Self >
Variable * clang::threadSafety::til::VisitReducer< Self >::enterScope ( Variable Orig,
R_SExpr  E0 
)
inline

Definition at line 283 of file ThreadSafetyTraverse.h.

◆ exitBasicBlock()

template<class Self >
void clang::threadSafety::til::VisitReducer< Self >::exitBasicBlock ( BasicBlock BB)
inline

Definition at line 288 of file ThreadSafetyTraverse.h.

◆ exitCFG()

template<class Self >
void clang::threadSafety::til::VisitReducer< Self >::exitCFG ( SCFG Cfg)
inline

Definition at line 286 of file ThreadSafetyTraverse.h.

◆ exitScope()

template<class Self >
void clang::threadSafety::til::VisitReducer< Self >::exitScope ( const Variable Orig)
inline

Definition at line 284 of file ThreadSafetyTraverse.h.

◆ reduceAlloc()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceAlloc ( Alloc Orig,
R_SExpr  E0 
)
inline

Definition at line 226 of file ThreadSafetyTraverse.h.

◆ reduceApply()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceApply ( Apply Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 216 of file ThreadSafetyTraverse.h.

◆ reduceArrayAdd()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceArrayAdd ( Store Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 234 of file ThreadSafetyTraverse.h.

◆ reduceArrayIndex()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceArrayIndex ( Store Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 230 of file ThreadSafetyTraverse.h.

◆ reduceBasicBlock()

template<class Self >
R_BasicBlock clang::threadSafety::til::VisitReducer< Self >::reduceBasicBlock ( BasicBlock Orig,
Container< R_SExpr > &  As,
Container< R_SExpr > &  Is,
R_SExpr  T 
)
inline

◆ reduceBasicBlockRef()

template<class Self >
BasicBlock * clang::threadSafety::til::VisitReducer< Self >::reduceBasicBlockRef ( BasicBlock Obb)
inline

Definition at line 291 of file ThreadSafetyTraverse.h.

◆ reduceBinaryOp()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceBinaryOp ( BinaryOp Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 240 of file ThreadSafetyTraverse.h.

◆ reduceBranch()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceBranch ( Branch O,
R_SExpr  C,
BasicBlock B0,
BasicBlock B1 
)
inline

Definition at line 263 of file ThreadSafetyTraverse.h.

References clang::C.

◆ reduceCall()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceCall ( Call Orig,
R_SExpr  E0 
)
inline

Definition at line 225 of file ThreadSafetyTraverse.h.

◆ reduceCast()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceCast ( Cast Orig,
R_SExpr  E0 
)
inline

Definition at line 244 of file ThreadSafetyTraverse.h.

◆ reduceCode()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceCode ( Code Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 208 of file ThreadSafetyTraverse.h.

◆ reduceField()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceField ( Field Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 212 of file ThreadSafetyTraverse.h.

◆ reduceFunction()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceFunction ( Function Orig,
Variable Nvd,
R_SExpr  E0 
)
inline

Definition at line 200 of file ThreadSafetyTraverse.h.

◆ reduceGoto()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceGoto ( Goto Orig,
BasicBlock B 
)
inline

Definition at line 259 of file ThreadSafetyTraverse.h.

◆ reduceIdentifier()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceIdentifier ( Identifier Orig)
inline

Definition at line 271 of file ThreadSafetyTraverse.h.

◆ reduceIfThenElse()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceIfThenElse ( IfThenElse Orig,
R_SExpr  C,
R_SExpr  T,
R_SExpr  E 
)
inline

Definition at line 275 of file ThreadSafetyTraverse.h.

References clang::C, E, and clang::T.

◆ reduceLet()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceLet ( Let Orig,
Variable Nvd,
R_SExpr  B 
)
inline

Definition at line 279 of file ThreadSafetyTraverse.h.

◆ reduceLiteral()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceLiteral ( Literal Orig)
inline

Definition at line 195 of file ThreadSafetyTraverse.h.

◆ reduceLiteralPtr()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceLiteralPtr ( Literal Orig)
inline

Definition at line 198 of file ThreadSafetyTraverse.h.

◆ reduceLiteralT()

template<class Self >
template<class T >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceLiteralT ( LiteralT< T > &  Orig)
inline

Definition at line 197 of file ThreadSafetyTraverse.h.

◆ reduceLoad()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceLoad ( Load Orig,
R_SExpr  E0 
)
inline

Definition at line 227 of file ThreadSafetyTraverse.h.

◆ reduceNull()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceNull ( )
inline

Definition at line 191 of file ThreadSafetyTraverse.h.

◆ reducePhi()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reducePhi ( Phi Orig,
Container< R_SExpr > &  As 
)
inline

◆ reduceProject()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceProject ( Project Orig,
R_SExpr  E0 
)
inline

Definition at line 224 of file ThreadSafetyTraverse.h.

◆ reduceReturn()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceReturn ( Return O,
R_SExpr  E 
)
inline

Definition at line 267 of file ThreadSafetyTraverse.h.

References E.

◆ reduceSApply()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceSApply ( SApply Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 220 of file ThreadSafetyTraverse.h.

◆ reduceSCFG()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceSCFG ( SCFG Orig,
Container< BasicBlock * >  Bbs 
)
inline

◆ reduceSFunction()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceSFunction ( SFunction Orig,
Variable Nvd,
R_SExpr  E0 
)
inline

Definition at line 204 of file ThreadSafetyTraverse.h.

◆ reduceStore()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceStore ( Store Orig,
R_SExpr  E0,
R_SExpr  E1 
)
inline

Definition at line 228 of file ThreadSafetyTraverse.h.

◆ reduceUnaryOp()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceUnaryOp ( UnaryOp Orig,
R_SExpr  E0 
)
inline

Definition at line 238 of file ThreadSafetyTraverse.h.

◆ reduceUndefined()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceUndefined ( Undefined Orig)
inline

Definition at line 192 of file ThreadSafetyTraverse.h.

◆ reduceVariableRef()

template<class Self >
Variable * clang::threadSafety::til::VisitReducer< Self >::reduceVariableRef ( Variable Ovd)
inline

Definition at line 290 of file ThreadSafetyTraverse.h.

◆ reduceWildcard()

template<class Self >
R_SExpr clang::threadSafety::til::VisitReducer< Self >::reduceWildcard ( Wildcard Orig)
inline

Definition at line 193 of file ThreadSafetyTraverse.h.

◆ traverse()

template<class Self >
bool clang::threadSafety::til::VisitReducer< Self >::traverse ( SExpr E,
TraversalKind  K = TRV_Normal 
)
inline

◆ visit()

template<class Self >
static bool clang::threadSafety::til::VisitReducer< Self >::visit ( SExpr E)
inlinestatic

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