Otawa  0.10
otawa::ContextualPath Class Reference

#include <otawa/prop/ContextualProperty.h>

Classes

class  Ref
 

Public Member Functions

 ContextualPath (void)
 
 ContextualPath (const ContextualPath &path)
 
ContextualPathoperator= (const ContextualPath &path)
 
void clear (void)
 
void push (const ContextualStep &step)
 
void push (ContextualStep::kind_t kind, const Address &addr)
 
void pop (void)
 
bool isEmpty (void) const
 
int count (void) const
 
const ContextualStepstep (int i) const
 
const ContextualStepoperator[] (int i) const
 
 operator bool (void) const
 
void print (io::Output &out) const
 Print the contextual path. More...
 
Address getEnclosingFunction (void)
 Get the address of the function enclosing immediately the current context. More...
 
template<class T >
const T & get (const Identifier< T > &id, const PropList &props) const
 
template<class T >
Ref< T > ref (const Identifier< T > &id, PropList &props) const
 
template<class T >
const T & get (const Identifier< T > &id, const PropList *props) const
 
template<class T >
Ref< T > ref (const Identifier< T > &id, PropList *props) const
 
template<class T >
const T & operator() (const Identifier< T > &id, const PropList *props) const
 
template<class T >
const T & operator() (const Identifier< T > &id, const PropList &props) const
 
template<class T >
Ref< T > operator() (const Identifier< T > &id, PropList *props) const
 
template<class T >
Ref< T > operator() (const Identifier< T > &id, PropList &props) const
 

Private Attributes

genstruct::Vector< ContextualStepstack
 

Constructor & Destructor Documentation

otawa::ContextualPath::ContextualPath ( void  )
inline
otawa::ContextualPath::ContextualPath ( const ContextualPath path)

Member Function Documentation

void otawa::ContextualPath::clear ( void  )
inline

Referenced by yyparse().

template<class T >
const T& otawa::ContextualPath::get ( const Identifier< T > &  id,
const PropList props 
) const
inline
template<class T >
const T& otawa::ContextualPath::get ( const Identifier< T > &  id,
const PropList props 
) const
inline
Address otawa::ContextualPath::getEnclosingFunction ( void  )

Get the address of the function enclosing immediately the current context.

Returns
Enclosing function address or Address::null if no function is found.

References otawa::ContextualStep::FUNCTION, kind, otawa::Address::null, and stack.

Referenced by otawa::ipet::FlowFactLoader::processBB().

bool otawa::ContextualPath::isEmpty ( void  ) const
inline
otawa::ContextualPath::operator bool ( void  ) const
inline
template<class T >
const T& otawa::ContextualPath::operator() ( const Identifier< T > &  id,
const PropList props 
) const
inline
template<class T >
const T& otawa::ContextualPath::operator() ( const Identifier< T > &  id,
const PropList props 
) const
inline
template<class T >
Ref<T> otawa::ContextualPath::operator() ( const Identifier< T > &  id,
PropList props 
) const
inline
template<class T >
Ref<T> otawa::ContextualPath::operator() ( const Identifier< T > &  id,
PropList props 
) const
inline
ContextualPath & otawa::ContextualPath::operator= ( const ContextualPath path)

References count(), push(), and stack.

const ContextualStep& otawa::ContextualPath::operator[] ( int  i) const
inline
void otawa::ContextualPath::pop ( void  )
inline
void otawa::ContextualPath::print ( io::Output out) const

Print the contextual path.

Parameters
outStream to output to.

References stack.

Referenced by otawa::operator<<().

void otawa::ContextualPath::push ( const ContextualStep step)
inline
void otawa::ContextualPath::push ( ContextualStep::kind_t  kind,
const Address addr 
)
inline
template<class T >
Ref<T> otawa::ContextualPath::ref ( const Identifier< T > &  id,
PropList props 
) const
inline
template<class T >
Ref<T> otawa::ContextualPath::ref ( const Identifier< T > &  id,
PropList props 
) const
inline
const ContextualStep& otawa::ContextualPath::step ( int  i) const
inline

Member Data Documentation

genstruct::Vector<ContextualStep> otawa::ContextualPath::stack
private

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