clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions
clang::threadSafety::til::SCFG Class Reference

#include <ThreadSafetyTIL.h>

Inheritance diagram for clang::threadSafety::til::SCFG:
Inheritance graph
[legend]
Collaboration diagram for clang::threadSafety::til::SCFG:
Collaboration graph
[legend]

List of all members.

Public Types

typedef SimpleArray< BasicBlock * > BlockArray
typedef BlockArray::iterator iterator
typedef BlockArray::const_iterator const_iterator

Public Member Functions

 SCFG (MemRegionRef A, unsigned Nblocks)
 SCFG (const SCFG &Cfg, BlockArray &&Ba)
bool valid () const
 Return true if this CFG is valid.
bool normal () const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
const_iterator cbegin () const
const_iterator cend () const
const BasicBlockentry () const
BasicBlockentry ()
const BasicBlockexit () const
BasicBlockexit ()
size_t numBlocks () const
unsigned numInstructions ()
void add (BasicBlock *BB)
void setEntry (BasicBlock *BB)
void setExit (BasicBlock *BB)
void computeNormalForm ()
template<class V >
V::R_SExpr traverse (V &Vs, typename V::R_Ctx Ctx)
template<class C >
C::CType compare (const SCFG *E, C &Cmp) const

Static Public Member Functions

static bool classof (const SExpr *E)

Detailed Description

An SCFG is a control-flow graph. It consists of a set of basic blocks, each of which terminates in a branch to another basic block. There is one entry point, and one exit point.

Definition at line 1687 of file ThreadSafetyTIL.h.


Member Typedef Documentation

Definition at line 1689 of file ThreadSafetyTIL.h.

Definition at line 1691 of file ThreadSafetyTIL.h.

Definition at line 1690 of file ThreadSafetyTIL.h.


Constructor & Destructor Documentation

Definition at line 1695 of file ThreadSafetyTIL.h.

clang::threadSafety::til::SCFG::SCFG ( const SCFG Cfg,
BlockArray &&  Ba 
) [inline]

Definition at line 1706 of file ThreadSafetyTIL.h.


Member Function Documentation

Definition at line 1743 of file ThreadSafetyTIL.h.

Definition at line 1720 of file ThreadSafetyTIL.h.

Definition at line 1723 of file ThreadSafetyTIL.h.

Definition at line 1726 of file ThreadSafetyTIL.h.

Definition at line 1727 of file ThreadSafetyTIL.h.

static bool clang::threadSafety::til::SCFG::classof ( const SExpr E) [inline, static]

Definition at line 1693 of file ThreadSafetyTIL.h.

References clang::threadSafety::til::SExpr::opcode().

template<class C >
C::CType clang::threadSafety::til::SCFG::compare ( const SCFG E,
C &  Cmp 
) const [inline]

Definition at line 1768 of file ThreadSafetyTIL.h.

Definition at line 1721 of file ThreadSafetyTIL.h.

Definition at line 1724 of file ThreadSafetyTIL.h.

Definition at line 1729 of file ThreadSafetyTIL.h.

Definition at line 1730 of file ThreadSafetyTIL.h.

Definition at line 1731 of file ThreadSafetyTIL.h.

Definition at line 1732 of file ThreadSafetyTIL.h.

Return true if this CFG has been normalized. After normalization, blocks are in topological order, and block and instruction IDs have been assigned.

Definition at line 1718 of file ThreadSafetyTIL.h.

Return the number of blocks in the CFG. Block::blockID() will return a number less than numBlocks();

Definition at line 1736 of file ThreadSafetyTIL.h.

Return the total number of instructions in the CFG. This is useful for building instruction side-tables; A call to SExpr::id() will return a number less than numInstructions().

Definition at line 1741 of file ThreadSafetyTIL.h.

Definition at line 1750 of file ThreadSafetyTIL.h.

Definition at line 1751 of file ThreadSafetyTIL.h.

template<class V >
V::R_SExpr clang::threadSafety::til::SCFG::traverse ( V &  Vs,
typename V::R_Ctx  Ctx 
) [inline]

Definition at line 1756 of file ThreadSafetyTIL.h.

Return true if this CFG is valid.

Definition at line 1713 of file ThreadSafetyTIL.h.


The documentation for this class was generated from the following files: