Otawa  0.10
otawa::AbstractAccessor Class Reference

#include <otawa/proc/Accessor.h>

Inheritance diagram for otawa::AbstractAccessor:
otawa::AbstractIdentifier otawa::PropList otawa::Accessor< T > otawa::FunAccessor< T >

Public Member Functions

 AbstractAccessor (cstring name="")
 
const string name (void) const
 Get the string name of the identifier. More...
 
void print (elm::io::Output &out) const
 Print the identifier. More...
 
virtual void print (elm::io::Output &output, const Property *prop) const
 Print the value of the given property (accordint the property matches the given identifier). More...
 
void print (elm::io::Output &output, const Property &prop) const
 
virtual void printFormatted (io::Output &out, const Property *prop) const
 Print the value of the given property in a formatted way, that is, possibly to perform re-scanning after. More...
 
void printFormatted (elm::io::Output &output, const Property &prop) const
 
virtual const Typetype (void) const
 Get the identifier of data linked with this property. More...
 
virtual void fromString (PropList &props, const string &str) const
 Get value of an identifier from a string and store it in the given property list. More...
 
virtual bool equals (const Property *prop1, const Property *prop2) const
 Test if two properties are equal. More...
 
virtual Propertycopy (Property &prop) const
 Build a copy of the given property. More...
 
Propertycopy (Property *prop) const
 
virtual void serialize (Property *prop, elm::serial2::Serializer &serializer)
 Serialize the workspace to the current serializer. More...
 
virtual Propertyunserialize (elm::serial2::Unserializer &unserializer)
 Unserialize the workspace to the current unserializer. More...
 
PropertygetProp (const AbstractIdentifier *id) const
 Find a property by its identifier. More...
 
void setProp (Property *prop)
 Set the property in the property list removing any double. More...
 
void setProp (const AbstractIdentifier *id)
 
void removeProp (const AbstractIdentifier *id)
 Remove a property matching the given identifier. More...
 
void removeProp (const AbstractIdentifier &id)
 
PropertyextractProp (const AbstractIdentifier *id)
 Remove a property matching the given identifier and return it. More...
 
PropertyextractProp (const AbstractIdentifier &id)
 Remove a property matching the given identifier and return it. More...
 
void addProp (Property *prop)
 Add property to the list without checking of duplication. More...
 
void removeAllProp (const AbstractIdentifier *id)
 Remove all the properties matching the given identifier. More...
 
bool hasProp (const AbstractIdentifier &id) const
 Test if the property list contains a property matching the given identifier. More...
 
void clearProps (void)
 Remove all properties from the list. More...
 
void addProps (const PropList &props)
 Add all properties from the given property list, in a reverse order. More...
 

Static Public Member Functions

static AbstractIdentifierfind (const string &name)
 Find an abstract identifier by its name. More...
 

Static Public Attributes

static const PropList EMPTY
 This is an empty proplist for convenience. More...
 

Protected Member Functions

void initProps (Property *prop, VarArg &args)
 Add the properties found in the arguments (list of Property * ended by null) to the identifier properties. More...
 

Constructor & Destructor Documentation

otawa::AbstractAccessor::AbstractAccessor ( cstring  name = "")
inline

Member Function Documentation

void otawa::PropList::clearProps ( void  )
inherited
Property * otawa::AbstractIdentifier::copy ( Property prop) const
virtualinherited

Build a copy of the given property.

Parameters
propProperty to copy.
Returns
Copy of the property.

Reimplemented in otawa::Identifier< T >, otawa::Identifier< otawa::ccg::Node * >, otawa::Identifier< typename Problem::Domain * >, otawa::Identifier< dfa::BitSet * >, otawa::Identifier< double >, otawa::Identifier< otawa::CFG * >, otawa::Identifier< otawa::ast::AST * >, otawa::Identifier< elm::system::elm::sys::Path >, otawa::Identifier< otawa::Microprocessor< ExeNode > * >, otawa::Identifier< otawa::ccg::Collection * >, otawa::Identifier< Domain * >, otawa::Identifier< AbstractParamProcessor * >, otawa::Identifier< otawa::CFGInfo * >, otawa::Identifier< otawa::StatInfo * >, otawa::Identifier< int >, otawa::Identifier< T * >, otawa::Identifier< elm::sys::Path >, otawa::Identifier< otawa::PropList * >, otawa::Identifier< elm::genstruct::DLList * >, otawa::Identifier< elm::system::time_t >, otawa::Identifier< display::kind_t >, otawa::Identifier< typename P::Domain * >, otawa::Identifier< typename otawa::dfa::hai::FirstUnrollingFixPoint::FixPointState * >, otawa::Identifier< otawa::PCG * >, otawa::Identifier< otawa::BasicBlock * >, otawa::Identifier< elm::String >, otawa::Identifier< Processor * >, otawa::Identifier< otawa::tsim::TreePath< otawa::BasicBlock *, otawa::tsim::BBPath * > * >, otawa::Identifier< log_level_t >, otawa::Identifier< otawa::CEClass * >, otawa::Identifier< elm::io::elm::io::OutStream * >, otawa::Identifier< bool >, otawa::Identifier< otawa::AbstractParamIdentifier * >, otawa::Identifier< typename otawa::dfa::hai::WideningFixPoint::FixPointState * >, otawa::Identifier< elm::io::elm::io::Output * >, otawa::Identifier< otawa::Progress * >, otawa::Identifier< elm::CString >, otawa::Identifier< typename otawa::dfa::hai::DefaultFixPoint::FixPointState * >, otawa::Identifier< typename FixPoint::FixPointState * >, otawa::Identifier< otawa::Symbol * >, otawa::Identifier< otawa::display::ILPSystemAddon * >, otawa::Identifier< AbstractIdentifier * >, otawa::Identifier< elm::Pair >, and otawa::Identifier< otawa::arm::Info * >.

Property* otawa::AbstractIdentifier::copy ( Property prop) const
inlineinherited
bool otawa::AbstractIdentifier::equals ( const Property prop1,
const Property prop2 
) const
virtualinherited

Test if two properties are equal.

Parameters
prop1First property.
prop2Second property.
Returns
True if they are equal, false else.
Property * otawa::PropList::extractProp ( const AbstractIdentifier id)
inherited

Remove a property matching the given identifier and return it.

Caller is responsible of the management of the obtained property.

Parameters
idIdentifier of the property to extract.

References otawa::Property::_next, and otawa::Property::next().

Referenced by otawa::script::Script::makeConfig().

Property * otawa::PropList::extractProp ( const AbstractIdentifier id)
inlineinherited

Remove a property matching the given identifier and return it.

Caller is responsible of the management of the obtained property.

Parameters
idIdentifier of the property to extract.

References otawa::PropList::extractProp().

Referenced by otawa::PropList::extractProp().

AbstractIdentifier * otawa::AbstractIdentifier::find ( const string name)
staticinherited

Find an abstract identifier by its name.

Parameters
nameName of the looked identifier.
Returns
Found identifier or null.

Referenced by otawa::ProcessorPlugin::getIdentifier(), and otawa::Application::run().

void otawa::AbstractIdentifier::fromString ( PropList props,
const string str 
) const
virtualinherited

Get value of an identifier from a string and store it in the given property list.

Parameters
propsProperty list to store result into.
strString to get value from.

Reimplemented in otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< otawa::ccg::Node * >, otawa::Identifier< typename Problem::Domain * >, otawa::Identifier< dfa::BitSet * >, otawa::Identifier< double >, otawa::Identifier< otawa::CFG * >, otawa::Identifier< otawa::ast::AST * >, otawa::Identifier< elm::system::elm::sys::Path >, otawa::Identifier< otawa::Microprocessor< ExeNode > * >, otawa::Identifier< otawa::ccg::Collection * >, otawa::Identifier< Domain * >, otawa::Identifier< AbstractParamProcessor * >, otawa::Identifier< otawa::CFGInfo * >, otawa::Identifier< otawa::StatInfo * >, otawa::Identifier< int >, otawa::Identifier< T * >, otawa::Identifier< elm::sys::Path >, otawa::Identifier< otawa::PropList * >, otawa::Identifier< elm::genstruct::DLList * >, otawa::Identifier< elm::system::time_t >, otawa::Identifier< display::kind_t >, otawa::Identifier< typename P::Domain * >, otawa::Identifier< typename otawa::dfa::hai::FirstUnrollingFixPoint::FixPointState * >, otawa::Identifier< otawa::PCG * >, otawa::Identifier< otawa::BasicBlock * >, otawa::Identifier< elm::String >, otawa::Identifier< Processor * >, otawa::Identifier< otawa::tsim::TreePath< otawa::BasicBlock *, otawa::tsim::BBPath * > * >, otawa::Identifier< log_level_t >, otawa::Identifier< otawa::CEClass * >, otawa::Identifier< elm::io::elm::io::OutStream * >, otawa::Identifier< bool >, otawa::Identifier< otawa::AbstractParamIdentifier * >, otawa::Identifier< typename otawa::dfa::hai::WideningFixPoint::FixPointState * >, otawa::Identifier< elm::io::elm::io::Output * >, otawa::Identifier< otawa::Progress * >, otawa::Identifier< elm::CString >, otawa::Identifier< typename otawa::dfa::hai::DefaultFixPoint::FixPointState * >, otawa::Identifier< typename FixPoint::FixPointState * >, otawa::Identifier< otawa::Symbol * >, otawa::Identifier< otawa::display::ILPSystemAddon * >, otawa::Identifier< AbstractIdentifier * >, otawa::Identifier< elm::Pair >, otawa::Identifier< otawa::arm::Info * >, and otawa::Identifier< T >.

References otawa::AbstractIdentifier::name().

bool otawa::PropList::hasProp ( const AbstractIdentifier id) const
inlineinherited

Test if the property list contains a property matching the given identifier.

Parameters
idProperty identifier to look for.
Returns
True if the list contains the matching property, false else.

References otawa::PropList::getProp().

Referenced by otawa::ipet::BasicConstraintsBuilder::addEntryConstraint(), otawa::Monitor::configure(), otawa::ImmutableRef< T, I >::exists(), and otawa::Manager::setVerbosity().

void otawa::AbstractIdentifier::initProps ( Property prop,
VarArg args 
)
protectedinherited

Add the properties found in the arguments (list of Property * ended by null) to the identifier properties.

Parameters
propFirst property.
argsNull-ended properties to scan.

References otawa::PropList::addProp(), and elm::VarArg::next().

Referenced by otawa::AbstractIdentifier::AbstractIdentifier().

void otawa::AbstractIdentifier::print ( elm::io::Output out) const
inherited

Print the identifier.

Parameters
outOutput stream.

References otawa::AbstractIdentifier::nam.

void otawa::AbstractIdentifier::print ( elm::io::Output output,
const Property prop 
) const
virtualinherited

Print the value of the given property (accordint the property matches the given identifier).

It is an error to call this method with a property matching a different identifier.

Use the print() method of a property instead.

Reimplemented in otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< otawa::ccg::Node * >, otawa::Identifier< typename Problem::Domain * >, otawa::Identifier< dfa::BitSet * >, otawa::Identifier< double >, otawa::Identifier< otawa::CFG * >, otawa::Identifier< otawa::ast::AST * >, otawa::Identifier< elm::system::elm::sys::Path >, otawa::Identifier< otawa::Microprocessor< ExeNode > * >, otawa::Identifier< otawa::ccg::Collection * >, otawa::Identifier< Domain * >, otawa::Identifier< AbstractParamProcessor * >, otawa::Identifier< otawa::CFGInfo * >, otawa::Identifier< otawa::StatInfo * >, otawa::Identifier< int >, otawa::Identifier< T * >, otawa::Identifier< elm::sys::Path >, otawa::Identifier< otawa::PropList * >, otawa::Identifier< elm::genstruct::DLList * >, otawa::Identifier< elm::system::time_t >, otawa::Identifier< display::kind_t >, otawa::Identifier< typename P::Domain * >, otawa::Identifier< typename otawa::dfa::hai::FirstUnrollingFixPoint::FixPointState * >, otawa::Identifier< otawa::PCG * >, otawa::Identifier< otawa::BasicBlock * >, otawa::Identifier< elm::String >, otawa::Identifier< Processor * >, otawa::Identifier< otawa::tsim::TreePath< otawa::BasicBlock *, otawa::tsim::BBPath * > * >, otawa::Identifier< log_level_t >, otawa::Identifier< otawa::CEClass * >, otawa::Identifier< elm::io::elm::io::OutStream * >, otawa::Identifier< bool >, otawa::Identifier< otawa::AbstractParamIdentifier * >, otawa::Identifier< typename otawa::dfa::hai::WideningFixPoint::FixPointState * >, otawa::Identifier< elm::io::elm::io::Output * >, otawa::Identifier< otawa::Progress * >, otawa::Identifier< elm::CString >, otawa::Identifier< typename otawa::dfa::hai::DefaultFixPoint::FixPointState * >, otawa::Identifier< typename FixPoint::FixPointState * >, otawa::Identifier< otawa::Symbol * >, otawa::Identifier< otawa::display::ILPSystemAddon * >, otawa::Identifier< AbstractIdentifier * >, otawa::Identifier< elm::Pair >, and otawa::Identifier< otawa::arm::Info * >.

void otawa::AbstractIdentifier::print ( elm::io::Output output,
const Property prop 
) const
inlineinherited
void otawa::AbstractIdentifier::printFormatted ( io::Output out,
const Property prop 
) const
virtualinherited

Print the value of the given property in a formatted way, that is, possibly to perform re-scanning after.

For example, string are quoted and special character escaped.

Parameters
outOutput to use.
propProperty to display.

Reimplemented in otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< T >, otawa::Identifier< otawa::ccg::Node * >, otawa::Identifier< typename Problem::Domain * >, otawa::Identifier< dfa::BitSet * >, otawa::Identifier< double >, otawa::Identifier< otawa::CFG * >, otawa::Identifier< otawa::ast::AST * >, otawa::Identifier< elm::system::elm::sys::Path >, otawa::Identifier< otawa::Microprocessor< ExeNode > * >, otawa::Identifier< otawa::ccg::Collection * >, otawa::Identifier< Domain * >, otawa::Identifier< AbstractParamProcessor * >, otawa::Identifier< otawa::CFGInfo * >, otawa::Identifier< otawa::StatInfo * >, otawa::Identifier< int >, otawa::Identifier< T * >, otawa::Identifier< elm::sys::Path >, otawa::Identifier< otawa::PropList * >, otawa::Identifier< elm::genstruct::DLList * >, otawa::Identifier< elm::system::time_t >, otawa::Identifier< display::kind_t >, otawa::Identifier< typename P::Domain * >, otawa::Identifier< typename otawa::dfa::hai::FirstUnrollingFixPoint::FixPointState * >, otawa::Identifier< otawa::PCG * >, otawa::Identifier< otawa::BasicBlock * >, otawa::Identifier< elm::String >, otawa::Identifier< Processor * >, otawa::Identifier< otawa::tsim::TreePath< otawa::BasicBlock *, otawa::tsim::BBPath * > * >, otawa::Identifier< log_level_t >, otawa::Identifier< otawa::CEClass * >, otawa::Identifier< elm::io::elm::io::OutStream * >, otawa::Identifier< bool >, otawa::Identifier< otawa::AbstractParamIdentifier * >, otawa::Identifier< typename otawa::dfa::hai::WideningFixPoint::FixPointState * >, otawa::Identifier< elm::io::elm::io::Output * >, otawa::Identifier< otawa::Progress * >, otawa::Identifier< elm::CString >, otawa::Identifier< typename otawa::dfa::hai::DefaultFixPoint::FixPointState * >, otawa::Identifier< typename FixPoint::FixPointState * >, otawa::Identifier< otawa::Symbol * >, otawa::Identifier< otawa::display::ILPSystemAddon * >, otawa::Identifier< AbstractIdentifier * >, otawa::Identifier< elm::Pair >, and otawa::Identifier< otawa::arm::Info * >.

void otawa::AbstractIdentifier::printFormatted ( elm::io::Output output,
const Property prop 
) const
inlineinherited
void otawa::PropList::removeAllProp ( const AbstractIdentifier id)
inherited

Remove all the properties matching the given identifier.

Parameters
idIdentifier of properties to remove.

References otawa::Property::_next, and otawa::Property::next().

Referenced by otawa::LoopUnroller::unroll().

void otawa::PropList::removeProp ( const AbstractIdentifier id)
inherited
void otawa::PropList::removeProp ( const AbstractIdentifier id)
inlineinherited
void otawa::AbstractIdentifier::serialize ( Property prop,
elm::serial2::Serializer serializer 
)
virtualinherited

Serialize the workspace to the current serializer.

In the default implementation, do nothing.

Parameters
propProperty containing the value to serialize.
serializerSerializer to serialize to.
void otawa::PropList::setProp ( Property prop)
inherited

Set the property in the property list removing any double.

Parameters
propProperty to set.

References otawa::Property::_next, otawa::Property::id(), and otawa::Property::next().

void otawa::PropList::setProp ( const AbstractIdentifier id)
inlineinherited
const Type & otawa::AbstractIdentifier::type ( void  ) const
virtualinherited

Get the identifier of data linked with this property.

It may return Type::no_type ever meaning that the identifier does not support type system or that it is just a flag without associated data.

Returns
Type of the associated data.

Reimplemented in otawa::Identifier< T >, otawa::Identifier< otawa::ccg::Node * >, otawa::Identifier< typename Problem::Domain * >, otawa::Identifier< dfa::BitSet * >, otawa::Identifier< double >, otawa::Identifier< otawa::CFG * >, otawa::Identifier< otawa::ast::AST * >, otawa::Identifier< elm::system::elm::sys::Path >, otawa::Identifier< otawa::Microprocessor< ExeNode > * >, otawa::Identifier< otawa::ccg::Collection * >, otawa::Identifier< Domain * >, otawa::Identifier< AbstractParamProcessor * >, otawa::Identifier< otawa::CFGInfo * >, otawa::Identifier< otawa::StatInfo * >, otawa::Identifier< int >, otawa::Identifier< T * >, otawa::Identifier< elm::sys::Path >, otawa::Identifier< otawa::PropList * >, otawa::Identifier< elm::genstruct::DLList * >, otawa::Identifier< elm::system::time_t >, otawa::Identifier< display::kind_t >, otawa::Identifier< typename P::Domain * >, otawa::Identifier< typename otawa::dfa::hai::FirstUnrollingFixPoint::FixPointState * >, otawa::Identifier< otawa::PCG * >, otawa::Identifier< otawa::BasicBlock * >, otawa::Identifier< elm::String >, otawa::Identifier< Processor * >, otawa::Identifier< otawa::tsim::TreePath< otawa::BasicBlock *, otawa::tsim::BBPath * > * >, otawa::Identifier< log_level_t >, otawa::Identifier< otawa::CEClass * >, otawa::Identifier< elm::io::elm::io::OutStream * >, otawa::Identifier< bool >, otawa::Identifier< otawa::AbstractParamIdentifier * >, otawa::Identifier< typename otawa::dfa::hai::WideningFixPoint::FixPointState * >, otawa::Identifier< elm::io::elm::io::Output * >, otawa::Identifier< otawa::Progress * >, otawa::Identifier< elm::CString >, otawa::Identifier< typename otawa::dfa::hai::DefaultFixPoint::FixPointState * >, otawa::Identifier< typename FixPoint::FixPointState * >, otawa::Identifier< otawa::Symbol * >, otawa::Identifier< otawa::display::ILPSystemAddon * >, otawa::Identifier< AbstractIdentifier * >, otawa::Identifier< elm::Pair >, and otawa::Identifier< otawa::arm::Info * >.

References otawa::Type::no_type.

Property * otawa::AbstractIdentifier::unserialize ( elm::serial2::Unserializer unserializer)
virtualinherited

Unserialize the workspace to the current unserializer.

In the default implementation, do nothing.

Parameters
unserializerUnserializer to unserialize to.
Returns
Property result of unserialization, null if the property cannot be unserialized.

Member Data Documentation

const PropList otawa::PropList::EMPTY
staticinherited

This is an empty proplist for convenience.


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