clang API Documentation

Classes | Namespaces | Defines | Enumerations | Functions | Variables
ThreadSafetyTIL.h File Reference
#include "ThreadSafetyUtil.h"
#include <stdint.h>
#include <algorithm>
#include <cassert>
#include <cstddef>
#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
class  clang::threadSafety::til::SExpr
 Base class for AST nodes in the typed intermediate language. More...
class  clang::threadSafety::til::Variable
class  clang::threadSafety::til::Future
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
class  clang::threadSafety::til::Function
class  clang::threadSafety::til::SFunction
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
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
class  clang::threadSafety::til::ArrayIndex
class  clang::threadSafety::til::ArrayAdd
class  clang::threadSafety::til::UnaryOp
class  clang::threadSafety::til::BinaryOp
class  clang::threadSafety::til::Cast
class  clang::threadSafety::til::Phi
class  clang::threadSafety::til::Terminator
 Base class for basic block terminators: Branch, Goto, and Return. More...
class  clang::threadSafety::til::Goto
class  clang::threadSafety::til::Branch
class  clang::threadSafety::til::Return
class  clang::threadSafety::til::BasicBlock
struct  clang::threadSafety::til::BasicBlock::TopologyNode
class  clang::threadSafety::til::SCFG
class  clang::threadSafety::til::Identifier
class  clang::threadSafety::til::IfThenElse
class  clang::threadSafety::til::Let

Namespaces

namespace  clang
namespace  clang::threadSafety
namespace  clang::threadSafety::til
namespace  clang::threadSafety::til::ThreadSafetyTIL

Defines

#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 { 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 {
  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 {
  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.
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 SExpr * clang::threadSafety::til::getCanonicalVal (const SExpr *E)
SExpr * clang::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

Define Documentation

#define TIL_OPCODE_DEF (   X)    COP_##X,

Definition at line 68 of file ThreadSafetyTIL.h.