clang 19.0.0git
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::threadSafety::til::SExpr Class Reference

Base class for AST nodes in the typed intermediate language. More...

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

Inheritance diagram for clang::threadSafety::til::SExpr:
Inheritance graph
[legend]

Public Member Functions

 SExpr ()=delete
 
TIL_Opcode opcode () const
 
void * operator new (size_t S, MemRegionRef &R)
 
void * operator new (size_t)=delete
 SExpr objects must be created in an arena.
 
void operator delete (void *)=delete
 SExpr objects cannot be deleted.
 
unsigned id () const
 Returns the instruction ID for this expression.
 
BasicBlockblock () const
 Returns the block, if this is an instruction in a basic block, otherwise returns null.
 
void setID (BasicBlock *B, unsigned id)
 Set the basic block and instruction ID for this expression.
 

Protected Member Functions

 SExpr (TIL_Opcode Op)
 
 SExpr (const SExpr &E)
 
SExproperator= (const SExpr &)=delete
 

Protected Attributes

const TIL_Opcode Opcode
 
unsigned char Reserved = 0
 
unsigned short Flags = 0
 
unsigned SExprID = 0
 
BasicBlockBlock = nullptr
 

Detailed Description

Base class for AST nodes in the typed intermediate language.

Definition at line 276 of file ThreadSafetyTIL.h.

Constructor & Destructor Documentation

◆ SExpr() [1/3]

clang::threadSafety::til::SExpr::SExpr ( )
delete

◆ SExpr() [2/3]

clang::threadSafety::til::SExpr::SExpr ( TIL_Opcode  Op)
inlineprotected

Definition at line 320 of file ThreadSafetyTIL.h.

◆ SExpr() [3/3]

clang::threadSafety::til::SExpr::SExpr ( const SExpr E)
inlineprotected

Definition at line 321 of file ThreadSafetyTIL.h.

Member Function Documentation

◆ block()

BasicBlock * clang::threadSafety::til::SExpr::block ( ) const
inline

Returns the block, if this is an instruction in a basic block, otherwise returns null.

Definition at line 314 of file ThreadSafetyTIL.h.

References Block.

Referenced by clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printSExpr().

◆ id()

unsigned clang::threadSafety::til::SExpr::id ( ) const
inline

Returns the instruction ID for this expression.

All basic block instructions have a unique ID (i.e. virtual register).

Definition at line 310 of file ThreadSafetyTIL.h.

References SExprID.

Referenced by clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printBBInstr(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printSExpr(), and setID().

◆ opcode()

TIL_Opcode clang::threadSafety::til::SExpr::opcode ( ) const
inline

Definition at line 280 of file ThreadSafetyTIL.h.

References Opcode.

Referenced by clang::threadSafety::til::Variable::classof(), clang::threadSafety::til::Future::classof(), clang::threadSafety::til::Undefined::classof(), clang::threadSafety::til::Wildcard::classof(), clang::threadSafety::til::Literal::classof(), clang::threadSafety::til::LiteralPtr::classof(), clang::threadSafety::til::Function::classof(), clang::threadSafety::til::SFunction::classof(), clang::threadSafety::til::Code::classof(), clang::threadSafety::til::Field::classof(), clang::threadSafety::til::Apply::classof(), clang::threadSafety::til::SApply::classof(), clang::threadSafety::til::Project::classof(), clang::threadSafety::til::Call::classof(), clang::threadSafety::til::Alloc::classof(), clang::threadSafety::til::Load::classof(), clang::threadSafety::til::Store::classof(), clang::threadSafety::til::ArrayIndex::classof(), clang::threadSafety::til::ArrayAdd::classof(), clang::threadSafety::til::UnaryOp::classof(), clang::threadSafety::til::BinaryOp::classof(), clang::threadSafety::til::Cast::classof(), clang::threadSafety::til::Phi::classof(), clang::threadSafety::til::Terminator::classof(), clang::threadSafety::til::Goto::classof(), clang::threadSafety::til::Branch::classof(), clang::threadSafety::til::Return::classof(), clang::threadSafety::til::BasicBlock::classof(), clang::threadSafety::til::SCFG::classof(), clang::threadSafety::til::Identifier::classof(), clang::threadSafety::til::IfThenElse::classof(), clang::threadSafety::til::Let::classof(), clang::threadSafety::til::EqualsComparator::compare(), clang::threadSafety::til::MatchComparator::compare(), clang::threadSafety::til::Comparator< Self >::compareByCase(), clang::threadSafety::til::ThreadSafetyTIL::isTrivial(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::precedence(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printApply(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printBBInstr(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printCall(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printFunction(), clang::threadSafety::til::PrettyPrinter< Self, StreamType >::printSExpr(), clang::threadSafety::til::Terminator::successors(), and clang::threadSafety::til::Traversal< Self, R >::traverseByCase().

◆ operator delete()

void clang::threadSafety::til::SExpr::operator delete ( void *  )
delete

SExpr objects cannot be deleted.

◆ operator new() [1/2]

void * clang::threadSafety::til::SExpr::operator new ( size_t  S,
MemRegionRef R 
)
inline

Definition at line 296 of file ThreadSafetyTIL.h.

◆ operator new() [2/2]

void * clang::threadSafety::til::SExpr::operator new ( size_t  )
delete

SExpr objects must be created in an arena.

◆ operator=()

SExpr & clang::threadSafety::til::SExpr::operator= ( const SExpr )
protecteddelete

◆ setID()

void clang::threadSafety::til::SExpr::setID ( BasicBlock B,
unsigned  id 
)
inline

Set the basic block and instruction ID for this expression.

Definition at line 317 of file ThreadSafetyTIL.h.

References Block, id(), and SExprID.

Member Data Documentation

◆ Block

BasicBlock* clang::threadSafety::til::SExpr::Block = nullptr
protected

◆ Flags

unsigned short clang::threadSafety::til::SExpr::Flags = 0
protected

◆ Opcode

const TIL_Opcode clang::threadSafety::til::SExpr::Opcode
protected

Definition at line 324 of file ThreadSafetyTIL.h.

Referenced by opcode().

◆ Reserved

unsigned char clang::threadSafety::til::SExpr::Reserved = 0
protected

Definition at line 325 of file ThreadSafetyTIL.h.

◆ SExprID

unsigned clang::threadSafety::til::SExpr::SExprID = 0
protected

Definition at line 327 of file ThreadSafetyTIL.h.

Referenced by id(), and setID().


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