clang  6.0.0svn
Classes | Namespaces | Macros | Enumerations | Functions | Variables
ThreadSafetyTIL.h File Reference
#include "ThreadSafetyUtil.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <stdint.h>
#include <utility>
#include "ThreadSafetyOps.def"
Include dependency graph for ThreadSafetyTIL.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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::LiteralT< T >
 
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...
 

Namespaces

 clang
 Dataflow Directional Tag Classes.
 
 clang::threadSafety
 
 clang::threadSafety::til
 
 clang::threadSafety::til::ThreadSafetyTIL
 

Macros

#define TIL_OPCODE_DEF(X)   COP_##X,
 

Enumerations

enum  clang::threadSafety::til::TIL_Opcode
 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_LogicAnd, clang::threadSafety::til::BOP_LogicOr
}
 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...
 

Functions

StringRef clang::threadSafety::til::getUnaryOpcodeString (TIL_UnaryOpcode Op)
 Return the name of a unary opcode. More...
 
StringRef clang::threadSafety::til::getBinaryOpcodeString (TIL_BinaryOpcode Op)
 Return the name of a binary opcode. More...
 
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)
 

Variables

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

◆ TIL_OPCODE_DEF

#define TIL_OPCODE_DEF (   X)    COP_##X,

Definition at line 67 of file ThreadSafetyTIL.h.