clang 22.0.0git
clang::threadSafety::til::VisitReducer< Self > Class Template Reference

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

Inheritance diagram for clang::threadSafety::til::VisitReducer< Self >:
[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 >
Selfself ()
VisitReducerBase::R_SExpr traverse (T *&E, typename VisitReducerBase::R_Ctx Ctx)
VisitReducerBase::R_SExpr traverseSExpr (SExpr *E, typename VisitReducerBase::R_Ctx Ctx)
VisitReducerBase::R_SExpr traverseByCase (SExpr *E, typename VisitReducerBase::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()

◆ 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, 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()

◆ 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.

◆ 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()

◆ 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()

◆ visit()

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

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