clang 20.0.0git
Namespaces | Classes | Enumerations | Functions | Variables
clang::threadSafety::til Namespace Reference

Namespaces

namespace  ThreadSafetyTIL
 

Classes

class  Alloc
 Allocate memory for a new value on the heap or stack. More...
 
class  Apply
 Apply an argument to a function. More...
 
class  ArrayAdd
 Pointer arithmetic, restricted to arrays only. More...
 
class  ArrayIndex
 If p is a reference to an array, then p[i] is a reference to the i'th element of the array. More...
 
class  BasicBlock
 A basic block is part of an SCFG. More...
 
class  BinaryOp
 Simple arithmetic binary operations, e.g. More...
 
class  Branch
 A conditional branch to two other blocks. More...
 
class  Call
 Call a function (after all arguments have been applied). More...
 
class  Cast
 Cast expressions. More...
 
class  Code
 A block of code – e.g. the body of a function. More...
 
class  Comparator
 
class  CopyReducerBase
 
class  EqualsComparator
 
class  Field
 A typed, writable location in memory. More...
 
class  Function
 A function – a.k.a. More...
 
class  Future
 Placeholder for an expression that has not yet been created. More...
 
class  Goto
 Jump to another basic block. More...
 
class  Identifier
 An identifier, e.g. More...
 
class  IfThenElse
 An if-then-else expression. More...
 
class  Let
 A let-expression, e.g. More...
 
class  Literal
 
class  LiteralPtr
 A Literal pointer to an object allocated in memory. More...
 
class  LiteralT
 
class  Load
 Load a value from memory. More...
 
class  MatchComparator
 
class  MemRegionRef
 
class  Phi
 Phi Node, for code in SSA form. More...
 
class  PrettyPrinter
 
class  Project
 Project a named slot from a C++ struct or class. More...
 
class  Return
 Return from the enclosing function, passing the return value to the caller. More...
 
class  SApply
 Apply a self-argument to a self-applicable function. More...
 
class  SCFG
 An SCFG is a control-flow graph. More...
 
class  SExpr
 Base class for AST nodes in the typed intermediate language. More...
 
class  SFunction
 A self-applicable function. More...
 
class  SimpleArray
 
class  SimpleReducerBase
 
class  StdPrinter
 
class  Store
 Store a value to memory. More...
 
class  Terminator
 Base class for basic block terminators: Branch, Goto, and Return. More...
 
class  Traversal
 
class  UnaryOp
 Simple arithmetic unary operations, e.g. More...
 
class  Undefined
 Placeholder for expressions that cannot be represented in the TIL. More...
 
struct  ValueType
 ValueTypes are data types that can actually be held in registers. More...
 
class  Variable
 A named variable, e.g. More...
 
class  VisitReducer
 
class  VisitReducerBase
 
class  Wildcard
 Placeholder for a wildcard that matches any other expression. More...
 

Enumerations

enum  TIL_Opcode : unsigned char
 Enum for the different distinct classes of SExpr. More...
 
enum  TIL_UnaryOpcode : unsigned char { UOP_Minus , UOP_BitNot , UOP_LogicNot }
 Opcode for unary arithmetic operations. More...
 
enum  TIL_BinaryOpcode : unsigned char {
  BOP_Add , BOP_Sub , BOP_Mul , BOP_Div ,
  BOP_Rem , BOP_Shl , BOP_Shr , BOP_BitAnd ,
  BOP_BitXor , BOP_BitOr , BOP_Eq , BOP_Neq ,
  BOP_Lt , BOP_Leq , BOP_Cmp , BOP_LogicAnd ,
  BOP_LogicOr
}
 Opcode for binary arithmetic operations. More...
 
enum  TIL_CastOpcode : unsigned char {
  CAST_none = 0 , CAST_extendNum , CAST_truncNum , CAST_toFloat ,
  CAST_toInt , CAST_objToPtr
}
 Opcode for cast operations. More...
 

Functions

StringRef getUnaryOpcodeString (TIL_UnaryOpcode Op)
 Return the name of a unary opcode.
 
StringRef getBinaryOpcodeString (TIL_BinaryOpcode Op)
 Return the name of a binary opcode.
 
const SExprgetCanonicalVal (const SExpr *E)
 
SExprsimplifyToCanonicalVal (SExpr *E)
 
void simplifyIncompleteArg (til::Phi *Ph)
 

Variables

const TIL_Opcode COP_Min = COP_Future
 
const TIL_Opcode COP_Max = COP_Branch
 
const TIL_UnaryOpcode UOP_Min = UOP_Minus
 
const TIL_UnaryOpcode UOP_Max = UOP_LogicNot
 
const TIL_BinaryOpcode BOP_Min = BOP_Add
 
const TIL_BinaryOpcode BOP_Max = BOP_LogicOr
 
const TIL_CastOpcode CAST_Min = CAST_none
 
const TIL_CastOpcode CAST_Max = CAST_toInt
 

Enumeration Type Documentation

◆ TIL_BinaryOpcode

Opcode for binary arithmetic operations.

Enumerator
BOP_Add 
BOP_Sub 
BOP_Mul 
BOP_Div 
BOP_Rem 
BOP_Shl 
BOP_Shr 
BOP_BitAnd 
BOP_BitXor 
BOP_BitOr 
BOP_Eq 
BOP_Neq 
BOP_Lt 
BOP_Leq 
BOP_Cmp 
BOP_LogicAnd 
BOP_LogicOr 

Definition at line 91 of file ThreadSafetyTIL.h.

◆ TIL_CastOpcode

Opcode for cast operations.

Enumerator
CAST_none 
CAST_extendNum 
CAST_truncNum 
CAST_toFloat 
CAST_toInt 
CAST_objToPtr 

Definition at line 112 of file ThreadSafetyTIL.h.

◆ TIL_Opcode

Enum for the different distinct classes of SExpr.

Definition at line 77 of file ThreadSafetyTIL.h.

◆ TIL_UnaryOpcode

Opcode for unary arithmetic operations.

Enumerator
UOP_Minus 
UOP_BitNot 
UOP_LogicNot 

Definition at line 84 of file ThreadSafetyTIL.h.

Function Documentation

◆ getBinaryOpcodeString()

StringRef clang::threadSafety::til::getBinaryOpcodeString ( TIL_BinaryOpcode  Op)

◆ getCanonicalVal()

const SExpr * clang::threadSafety::til::getCanonicalVal ( const SExpr E)

◆ getUnaryOpcodeString()

StringRef clang::threadSafety::til::getUnaryOpcodeString ( TIL_UnaryOpcode  Op)

Return the name of a unary opcode.

Definition at line 19 of file ThreadSafetyTIL.cpp.

References UOP_BitNot, UOP_LogicNot, and UOP_Minus.

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

◆ simplifyIncompleteArg()

void clang::threadSafety::til::simplifyIncompleteArg ( til::Phi Ph)

◆ simplifyToCanonicalVal()

SExpr * clang::threadSafety::til::simplifyToCanonicalVal ( SExpr E)

Variable Documentation

◆ BOP_Max

const TIL_BinaryOpcode clang::threadSafety::til::BOP_Max = BOP_LogicOr

Definition at line 136 of file ThreadSafetyTIL.h.

◆ BOP_Min

const TIL_BinaryOpcode clang::threadSafety::til::BOP_Min = BOP_Add

Definition at line 135 of file ThreadSafetyTIL.h.

◆ CAST_Max

const TIL_CastOpcode clang::threadSafety::til::CAST_Max = CAST_toInt

Definition at line 138 of file ThreadSafetyTIL.h.

◆ CAST_Min

const TIL_CastOpcode clang::threadSafety::til::CAST_Min = CAST_none

Definition at line 137 of file ThreadSafetyTIL.h.

◆ COP_Max

const TIL_Opcode clang::threadSafety::til::COP_Max = COP_Branch

Definition at line 132 of file ThreadSafetyTIL.h.

◆ COP_Min

const TIL_Opcode clang::threadSafety::til::COP_Min = COP_Future

Definition at line 131 of file ThreadSafetyTIL.h.

◆ UOP_Max

const TIL_UnaryOpcode clang::threadSafety::til::UOP_Max = UOP_LogicNot

Definition at line 134 of file ThreadSafetyTIL.h.

◆ UOP_Min

const TIL_UnaryOpcode clang::threadSafety::til::UOP_Min = UOP_Minus

Definition at line 133 of file ThreadSafetyTIL.h.