clang 19.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
ThreadSafetyTIL.h File Reference
#include "clang/AST/Decl.h"
#include "clang/Analysis/Analyses/ThreadSafetyUtil.h"
#include "clang/Basic/LLVM.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <optional>
#include <string>
#include <utility>
#include "ThreadSafetyOps.def"

Go to the source code of this file.


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


namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
namespace  clang::threadSafety
namespace  clang::threadSafety::til
namespace  clang::threadSafety::til::ThreadSafetyTIL


#define TIL_OPCODE_DEF(X)   COP_##X,


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


StringRef clang::threadSafety::til::getUnaryOpcodeString (TIL_UnaryOpcode Op)
 Return the name of a unary opcode.
StringRef clang::threadSafety::til::getBinaryOpcodeString (TIL_BinaryOpcode Op)
 Return the name of a binary opcode.
bool clang::threadSafety::til::ThreadSafetyTIL::isTrivial (const SExpr *E)
const SExprclang::threadSafety::til::getCanonicalVal (const SExpr *E)
SExprclang::threadSafety::til::simplifyToCanonicalVal (SExpr *E)
void clang::threadSafety::til::simplifyIncompleteArg (til::Phi *Ph)


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

Macro Definition Documentation


#define TIL_OPCODE_DEF (   X)    COP_##X,

Definition at line 78 of file ThreadSafetyTIL.h.