clang API Documentation
Namespaces | |
namespace | ThreadSafetyTIL |
Classes | |
struct | ValueType |
class | SExpr |
Base class for AST nodes in the typed intermediate language. More... | |
class | Variable |
class | Future |
class | Undefined |
Placeholder for expressions that cannot be represented in the TIL. More... | |
class | Wildcard |
Placeholder for a wildcard that matches any other expression. More... | |
class | Literal |
class | LiteralT |
class | LiteralPtr |
class | Function |
class | SFunction |
class | Code |
A block of code -- e.g. the body of a function. More... | |
class | Field |
A typed, writable location in memory. More... | |
class | Apply |
class | SApply |
Apply a self-argument to a self-applicable function. More... | |
class | Project |
Project a named slot from a C++ struct or class. More... | |
class | Call |
Call a function (after all arguments have been applied). More... | |
class | Alloc |
Allocate memory for a new value on the heap or stack. More... | |
class | Load |
Load a value from memory. More... | |
class | Store |
class | ArrayIndex |
class | ArrayAdd |
class | UnaryOp |
class | BinaryOp |
class | Cast |
class | Phi |
class | Terminator |
Base class for basic block terminators: Branch, Goto, and Return. More... | |
class | Goto |
class | Branch |
class | Return |
class | BasicBlock |
class | SCFG |
class | Identifier |
class | IfThenElse |
class | Let |
class | Traversal |
class | SimpleReducerBase |
class | CopyReducerBase |
class | VisitReducerBase |
class | VisitReducer |
class | Comparator |
class | EqualsComparator |
class | MatchComparator |
class | PrettyPrinter |
class | StdPrinter |
class | MemRegionRef |
class | SimpleArray |
Enumerations | |
enum | TIL_Opcode |
Enum for the different distinct classes of SExpr. More... | |
enum | TIL_UnaryOpcode { UOP_Minus, UOP_BitNot, UOP_LogicNot } |
Opcode for unary arithmetic operations. More... | |
enum | TIL_BinaryOpcode { 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_LogicAnd, BOP_LogicOr } |
Opcode for binary arithmetic operations. More... | |
enum | TIL_CastOpcode { 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 SExpr * | getCanonicalVal (const SExpr *E) |
SExpr * | simplifyToCanonicalVal (SExpr *E) |
void | simplifyIncompleteArg (til::Phi *Ph) |
static bool | isIncompletePhi (const SExpr *E) |
static void | computeNodeSize (BasicBlock *B, BasicBlock::TopologyNode BasicBlock::*TN) |
static void | computeNodeID (BasicBlock *B, BasicBlock::TopologyNode BasicBlock::*TN) |
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 |
Opcode for binary arithmetic operations.
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_LogicAnd | |
BOP_LogicOr |
Definition at line 81 of file ThreadSafetyTIL.h.
Opcode for cast operations.
Definition at line 101 of file ThreadSafetyTIL.h.
Enum for the different distinct classes of SExpr.
Definition at line 67 of file ThreadSafetyTIL.h.
Opcode for unary arithmetic operations.
Definition at line 74 of file ThreadSafetyTIL.h.
static void clang::threadSafety::til::computeNodeID | ( | BasicBlock * | B, |
BasicBlock::TopologyNode BasicBlock::* | TN | ||
) | [inline, static] |
Definition at line 283 of file ThreadSafetyTIL.cpp.
References clang::threadSafety::til::BasicBlock::TopologyNode::NodeID, P, and clang::threadSafety::til::BasicBlock::TopologyNode::Parent.
Referenced by clang::threadSafety::til::SCFG::computeNormalForm().
static void clang::threadSafety::til::computeNodeSize | ( | BasicBlock * | B, |
BasicBlock::TopologyNode BasicBlock::* | TN | ||
) | [inline, static] |
Definition at line 272 of file ThreadSafetyTIL.cpp.
References clang::threadSafety::til::BasicBlock::TopologyNode::NodeID, P, clang::threadSafety::til::BasicBlock::TopologyNode::Parent, and clang::threadSafety::til::BasicBlock::TopologyNode::SizeOfSubTree.
Referenced by clang::threadSafety::til::SCFG::computeNormalForm().
StringRef clang::threadSafety::til::getBinaryOpcodeString | ( | TIL_BinaryOpcode | Op | ) |
Return the name of a binary opcode.
Definition at line 28 of file ThreadSafetyTIL.cpp.
References BOP_Add, BOP_BitAnd, BOP_BitOr, BOP_BitXor, BOP_Div, BOP_Eq, BOP_Leq, BOP_LogicAnd, BOP_LogicOr, BOP_Lt, BOP_Mul, BOP_Neq, BOP_Rem, BOP_Shl, BOP_Shr, and BOP_Sub.
Referenced by clang::threadSafety::til::PrettyPrinter< StdPrinter, std::ostream >::printBinaryOp().
const SExpr * clang::threadSafety::til::getCanonicalVal | ( | const SExpr * | E | ) |
Definition at line 85 of file ThreadSafetyTIL.cpp.
References clang::threadSafety::til::Phi::PH_SingleVal, and clang::threadSafety::til::Variable::VK_Let.
StringRef clang::threadSafety::til::getUnaryOpcodeString | ( | TIL_UnaryOpcode | Op | ) |
Return the name of a unary opcode.
Definition at line 18 of file ThreadSafetyTIL.cpp.
References UOP_BitNot, UOP_LogicNot, and UOP_Minus.
Referenced by clang::threadSafety::til::PrettyPrinter< StdPrinter, std::ostream >::printUnaryOp().
static bool clang::threadSafety::til::isIncompletePhi | ( | const SExpr * | E | ) | [static] |
Definition at line 66 of file ThreadSafetyCommon.cpp.
References clang::threadSafety::til::Phi::PH_Incomplete.
void clang::threadSafety::til::simplifyIncompleteArg | ( | til::Phi * | Ph | ) |
Definition at line 138 of file ThreadSafetyTIL.cpp.
References clang::threadSafety::til::Phi::PH_Incomplete, clang::threadSafety::til::Phi::PH_MultiVal, clang::threadSafety::til::Phi::PH_SingleVal, clang::threadSafety::til::Phi::setStatus(), simplifyToCanonicalVal(), clang::threadSafety::til::SimpleArray< T >::size(), clang::threadSafety::til::Phi::status(), and clang::threadSafety::til::Phi::values().
Referenced by simplifyToCanonicalVal().
SExpr * clang::threadSafety::til::simplifyToCanonicalVal | ( | SExpr * | E | ) |
Definition at line 108 of file ThreadSafetyTIL.cpp.
References clang::threadSafety::til::ThreadSafetyTIL::isTrivial(), clang::threadSafety::til::Phi::PH_Incomplete, clang::threadSafety::til::Phi::PH_SingleVal, simplifyIncompleteArg(), and clang::threadSafety::til::Variable::VK_Let.
Referenced by simplifyIncompleteArg().
Definition at line 115 of file ThreadSafetyTIL.h.
Definition at line 114 of file ThreadSafetyTIL.h.
Definition at line 117 of file ThreadSafetyTIL.h.
Definition at line 116 of file ThreadSafetyTIL.h.
const TIL_Opcode clang::threadSafety::til::COP_Max = COP_Branch |
Definition at line 111 of file ThreadSafetyTIL.h.
const TIL_Opcode clang::threadSafety::til::COP_Min = COP_Future |
Definition at line 110 of file ThreadSafetyTIL.h.
Definition at line 113 of file ThreadSafetyTIL.h.
Definition at line 112 of file ThreadSafetyTIL.h.