OTAWA  2.0
Framework to perform machine analysis and compute WCET.
otawa::clp::Analysis Class Reference

#include <otawa/data/clp/ClpAnalysis.h>

+ Inheritance diagram for otawa::clp::Analysis:

Public Types

typedef Pair< const hard::Register *, Addressinit_t
 
- Public Types inherited from otawa::Monitor
enum  log_level_t {
  LOG_NONE = 0, LOG_PROC = 1, LOG_FILE = 2, LOG_DEPS = LOG_FILE,
  LOG_FUN = 3, LOG_CFG = LOG_FUN, LOG_BLOCK = 4, LOG_BB = LOG_BLOCK,
  LOG_INST = 5
}
 
typedef enum otawa::Monitor::log_level_t log_level_t
 

Public Member Functions

 Analysis (p::declare &r=reg)
 
void configure (const PropList &props) override
 Build the initial configuration of the Analysis fro a property list. More...
 
clp::STAT_UINT get_nb_filters (void)
 
clp::STAT_UINT get_nb_inst (void)
 
clp::STAT_UINT get_nb_load (void)
 
clp::STAT_UINT get_nb_load_top_addr (void)
 
clp::STAT_UINT get_nb_sem_inst (void)
 
clp::STAT_UINT get_nb_set (void)
 
clp::STAT_UINT get_nb_store (void)
 
clp::STAT_UINT get_nb_top_filters (void)
 
clp::STAT_UINT get_nb_top_load (void) const
 
clp::STAT_UINT get_nb_top_set (void)
 
clp::STAT_UINT get_nb_top_store (void)
 
clp::STAT_UINT get_nb_top_store_addr (void)
 
- Public Member Functions inherited from otawa::Processor
virtual voidinterfaceFor (const AbstractFeature &feature)
 Get the interface corresponding to the given feature. More...
 
elm::String name (void) const
 
 Processor (AbstractRegistration &registration)
 For internal use only. More...
 
 Processor (const PropList &props)
 Build a new processor. More...
 
 Processor (elm::String name, elm::Version version, const PropList &props)
 Build a new processor with name and version. More...
 
 Processor (String name, Version version)
 Build a new processor with name and version. More...
 
 Processor (String name, Version version, AbstractRegistration &registration)
 For internal use only. More...
 
 Processor (void)
 Build a simple anonymous processor. More...
 
AbstractRegistrationregistration (void) const
 
elm::Version version (void) const
 
virtual ~Processor (void)
 
- Public Member Functions inherited from otawa::Monitor
void configure (const PropList &props, string name="")
 
bool isQuiet () const
 
bool isVerbose () const
 
bool logFor (log_level_t tested) const
 
log_level_t logLevel (void) const
 
 Monitor ()
 
 Monitor (Monitor &mon)
 Build a monitor by copy. More...
 
WorkSpaceworkspace (void)
 
 ~Monitor ()
 

Static Public Attributes

static Identifier< init_tINITIAL
 Initial state of the analysis. More...
 
static p::declare reg
 
- Static Public Attributes inherited from otawa::Processor
static p::id< boolCOLLECT_STATS
 This property allows to activate collection of statistics for the work of the current processor. More...
 
static p::id< elm::io::OutStream * > & LOG = otawa::LOG
 This property identifier is used for setting the log stream used by the processor to write messages (information, warning, error). More...
 
static p::id< string > & LOG_FOR = otawa::LOG_FOR
 Logging message will only be displayed for the named processor. More...
 
static p::id< log_level_t > & LOG_LEVEL = otawa::LOG_LEVEL
 Property passed in the configuration property list of a processor to select the log level between LOG_PROC, LOG_CFG or LOG_BB. More...
 
static Processornull = _null
 Singleton representing a null processor. More...
 
static p::id< elm::io::OutStream * > & OUTPUT = otawa::OUTPUT
 This property identifier is used for setting the output stream used by the processor to write results. More...
 
static p::id< Progress * > PROGRESS
 Record a progress listener for the execution of the processors. More...
 
static p::id< boolRECURSIVE
 
static p::declare reg
 
static p::id< elm::sys::time_tRUNTIME
 This property identifier is used to store in the statistics of a processor the overall run time of the processor work. More...
 
static p::id< PropList * > STATS
 This property identifiers is used to pass a property list to the processor that will be used to store statistics about the performed work. More...
 
static p::id< boolTIMED
 If the value of the associated property is true (default to false), time statistics will also be collected with other processor statistics. More...
 
static p::id< bool > & VERBOSE = otawa::VERBOSE
 This property activates the verbose mode of the processor: information about the processor work will be displayed. More...
 
- Static Public Attributes inherited from otawa::Monitor
static Monitornull = __null_mon
 Monitor that output nothing. More...
 

Protected Member Functions

void processWorkSpace (WorkSpace *ws) override
 Perform the analysis by processing the workspace. More...
 
void setup (WorkSpace *ws) override
 This method is called before an anlysis to let the processor do some initialization. More...
 
- Protected Member Functions inherited from otawa::Processor
void addCleaner (const AbstractFeature &feature, Cleaner *cleaner)
 
template<class T >
void addDeletor (const AbstractFeature &feature, const Ref< T *, Identifier< T * > > &ref)
 
template<class T >
void addRemover (const AbstractFeature &feature, const Ref< T, Identifier< T > > &ref)
 
virtual void cleanup (WorkSpace *ws)
 This method is called after the end of the processor analysis to let it do some clean up. More...
 
virtual void collectStats (WorkSpace *ws)
 This method is invoked if the user has required to collect statistics about the processor. More...
 
virtual void commit (WorkSpace *ws)
 This processor is called as soon as all the required and invalidated features has been removed to let the processor install its own properties. More...
 
virtual void destroy (WorkSpace *ws)
 This method is called when the properties produced by a processor are no more useful and can be release. More...
 
virtual void dump (WorkSpace *ws, Output &out)
 Function called for debugging purpose when dump properties (otawa::DUMP, otawa::DUMP_FOR) are provided. More...
 
void invalidate (const AbstractFeature &feature)
 Usually called from a processor constructor, this method records a feature invalidated by the work of the current processor. More...
 
bool isAllocated (void) const
 
bool isCollectingStats (void) const
 
bool isDone () const
 
bool isDumping () const
 
bool isPrepared (void) const
 
bool isTimed (void) const
 
virtual void prepare (WorkSpace *ws)
 This method called to let the processor customize its requirements according to some generic feature. More...
 
Progressprogress (void)
 
void provide (const AbstractFeature &feature)
 Usually called from a processor constructor, this method records a feature provided by the work of the current processor. More...
 
void record (StatCollector *collector)
 Add a statistics collector to the current workspace collection. More...
 
bool recordsStats (void) const
 
void recordStat (const AbstractFeature &feature, StatCollector *collector)
 Add a statistics collector to the current workspace collection. More...
 
void require (const AbstractFeature &feature)
 Usually called from a processor constructor, this method records a required feature for the work of the current processor. More...
 
virtual void requireDyn (WorkSpace *ws, const PropList &props)
 Method called after registration requirements to support dynamic requirements. More...
 
void track (Cleaner *cleaner)
 Track the given cleaner, that is, record the cleaner in the analysis and trigger when the analysis is deleted. More...
 
template<class T >
void track (const AbstractFeature &feature, const Ref< T *, const Identifier< T * > > &ref)
 
template<class T >
void track (const AbstractFeature &feature, const Ref< T *, Identifier< T * > > &ref)
 
template<class T >
void track (const AbstractFeature &feature, const Ref< T, const Identifier< T > > &ref)
 
template<class T >
void track (const AbstractFeature &feature, const Ref< T, Identifier< T > > &ref)
 
template<class T >
T * track (const AbstractFeature &feature, T *object)
 
template<class T >
void track (const Ref< T *, const Identifier< T * > > &ref)
 
template<class T >
void track (const Ref< T, const Identifier< T > > &ref)
 
template<class T >
T * track (T *object)
 
void use (const AbstractFeature &feature)
 Usually called from a processor constructor, this method records a feature as used by the work of the current processor. More...
 
void warn (const String &message)
 Display a warning. More...
 
WorkSpaceworkspace (void) const
 
- Protected Member Functions inherited from otawa::Monitor
void setWorkspace (WorkSpace *workspace)
 Update the workspace in the monitor. More...
 

Protected Attributes

Vector< init_tinits
 
- Protected Attributes inherited from otawa::Processor
PropListstats
 
- Protected Attributes inherited from otawa::Monitor
t::uint32 flags
 

Private Attributes

clp::STAT_UINT _nb_filters
 
clp::STAT_UINT _nb_inst
 
clp::STAT_UINT _nb_load
 
clp::STAT_UINT _nb_load_top_addr
 
clp::STAT_UINT _nb_sem_inst
 
clp::STAT_UINT _nb_set
 
clp::STAT_UINT _nb_store
 
clp::STAT_UINT _nb_top_filters
 
clp::STAT_UINT _nb_top_load
 
clp::STAT_UINT _nb_top_set
 
clp::STAT_UINT _nb_top_store
 
clp::STAT_UINT _nb_top_store_addr
 
const hard::Memorymem
 
bool verbose
 

Additional Inherited Members

- Public Attributes inherited from otawa::Monitor
elm::io::Output log
 
elm::io::Output out
 
- Static Protected Attributes inherited from otawa::Processor
static const t::uint32 CLOSE_DUMP = 0x100 << CUSTOM_SHIFT
 
static const t::uint32 IS_ALLOCATED = 0x004 << CUSTOM_SHIFT
 
static const t::uint32 IS_COLLECTING = 0x010 << CUSTOM_SHIFT
 
static const t::uint32 IS_DONE = 0x040 << CUSTOM_SHIFT
 
static const t::uint32 IS_DUMPING = 0x080 << CUSTOM_SHIFT
 
static const t::uint32 IS_PREPARED = 0x008 << CUSTOM_SHIFT
 
static const t::uint32 IS_TIED = 0x020 << CUSTOM_SHIFT
 
static const t::uint32 IS_TIMED = 0x001 << CUSTOM_SHIFT
 
- Static Protected Attributes inherited from otawa::Monitor
static const t::uint32 CUSTOM_SHIFT = 16
 
static const t::uint32 IS_QUIET = 0x02
 
static const t::uint32 IS_VERBOSE = 0x01
 

Member Typedef Documentation

◆ init_t

Constructor & Destructor Documentation

◆ Analysis()

otawa::clp::Analysis::Analysis ( p::declare r = reg)

Member Function Documentation

◆ configure()

void otawa::clp::Analysis::configure ( const PropList props)
overridevirtual

Build the initial configuration of the Analysis fro a property list.

Parameters
propsthe property list

Reimplemented from otawa::Processor.

References otawa::Processor::configure(), otawa::Processor::init(), INITIAL, inits, verbose, and otawa::Processor::VERBOSE.

◆ get_nb_filters()

clp::STAT_UINT otawa::clp::Analysis::get_nb_filters ( void  )
inline
Returns
the number of filters built.

References _nb_filters.

◆ get_nb_inst()

clp::STAT_UINT otawa::clp::Analysis::get_nb_inst ( void  )
inline
Returns
the number of machine instructions analysed.

References _nb_inst.

◆ get_nb_load()

clp::STAT_UINT otawa::clp::Analysis::get_nb_load ( void  )
inline
Returns
the number of LOAD analysed.

References _nb_load.

◆ get_nb_load_top_addr()

clp::STAT_UINT otawa::clp::Analysis::get_nb_load_top_addr ( void  )
inline
Returns
the number of LOAD with Top as address.

References _nb_load_top_addr.

◆ get_nb_sem_inst()

clp::STAT_UINT otawa::clp::Analysis::get_nb_sem_inst ( void  )
inline
Returns
the number of semantic instructions analysed.

References _nb_sem_inst.

◆ get_nb_set()

clp::STAT_UINT otawa::clp::Analysis::get_nb_set ( void  )
inline
Returns
the number of SET analysed.

References _nb_set.

◆ get_nb_store()

clp::STAT_UINT otawa::clp::Analysis::get_nb_store ( void  )
inline
Returns
the number of STORE analysed.

References _nb_store.

◆ get_nb_top_filters()

clp::STAT_UINT otawa::clp::Analysis::get_nb_top_filters ( void  )
inline
Returns
the number of filters with a comparison to Top.

References _nb_top_filters.

◆ get_nb_top_load()

clp::STAT_UINT otawa::clp::Analysis::get_nb_top_load ( void  ) const
inline
Returns
the number of load resulting in a top value.

References _nb_top_load.

◆ get_nb_top_set()

clp::STAT_UINT otawa::clp::Analysis::get_nb_top_set ( void  )
inline
Returns
the number of SET with Top as result.

References _nb_top_set.

◆ get_nb_top_store()

clp::STAT_UINT otawa::clp::Analysis::get_nb_top_store ( void  )
inline
Returns
the number of STORE with Top as result.

References _nb_top_store.

◆ get_nb_top_store_addr()

clp::STAT_UINT otawa::clp::Analysis::get_nb_top_store_addr ( void  )
inline
Returns
the number of STORE with Top as address.

References _nb_top_store_addr.

◆ processWorkSpace()

void otawa::clp::Analysis::processWorkSpace ( WorkSpace ws)
overrideprotectedvirtual

Perform the analysis by processing the workspace.

Parameters
wsthe workspace to be processed

Reimplemented from otawa::Processor.

References otawa::INVOLVED_CFGS, otawa::WorkSpace::platform(), elm::sys::StopWatch::start(), and otawa::Processor::ws.

◆ setup()

void otawa::clp::Analysis::setup ( WorkSpace ws)
overrideprotectedvirtual

This method is called before an anlysis to let the processor do some initialization.

Parameters
wsProcessed workspace.

Reimplemented from otawa::Processor.

References mem, otawa::hard::MEMORY_FEATURE, and otawa::Processor::ws.

Member Data Documentation

◆ _nb_filters

clp::STAT_UINT otawa::clp::Analysis::_nb_filters
private

Referenced by get_nb_filters().

◆ _nb_inst

clp::STAT_UINT otawa::clp::Analysis::_nb_inst
private

Referenced by get_nb_inst().

◆ _nb_load

clp::STAT_UINT otawa::clp::Analysis::_nb_load
private

Referenced by get_nb_load().

◆ _nb_load_top_addr

clp::STAT_UINT otawa::clp::Analysis::_nb_load_top_addr
private

Referenced by get_nb_load_top_addr().

◆ _nb_sem_inst

clp::STAT_UINT otawa::clp::Analysis::_nb_sem_inst
private

Referenced by get_nb_sem_inst().

◆ _nb_set

clp::STAT_UINT otawa::clp::Analysis::_nb_set
private

Referenced by get_nb_set().

◆ _nb_store

clp::STAT_UINT otawa::clp::Analysis::_nb_store
private

Referenced by get_nb_store().

◆ _nb_top_filters

clp::STAT_UINT otawa::clp::Analysis::_nb_top_filters
private

Referenced by get_nb_top_filters().

◆ _nb_top_load

clp::STAT_UINT otawa::clp::Analysis::_nb_top_load
private

Referenced by get_nb_top_load().

◆ _nb_top_set

clp::STAT_UINT otawa::clp::Analysis::_nb_top_set
private

Referenced by get_nb_top_set().

◆ _nb_top_store

clp::STAT_UINT otawa::clp::Analysis::_nb_top_store
private

Referenced by get_nb_top_store().

◆ _nb_top_store_addr

clp::STAT_UINT otawa::clp::Analysis::_nb_top_store_addr
private

Referenced by get_nb_top_store_addr().

◆ inits

Vector<init_t> otawa::clp::Analysis::inits
protected

Referenced by configure().

◆ mem

const hard::Memory* otawa::clp::Analysis::mem
private

Referenced by setup().

◆ reg

p::declare otawa::clp::Analysis::reg
static
Initial value:
= p::init("otawa::clp::CLPAnalysis", Version(0, 1, 0))
.maker<Analysis>()

◆ verbose

bool otawa::clp::Analysis::verbose
private

Referenced by configure().


The documentation for this class was generated from the following files:
otawa::clp::CLP_ANALYSIS_FEATURE
p::feature CLP_ANALYSIS_FEATURE
This features ensure that the clp analysis has been identified.
otawa::FLOW_FACTS_FEATURE
p::feature FLOW_FACTS_FEATURE
This feature ensures that the flow facts has been loaded.
otawa::LOOP_INFO_FEATURE
p::feature LOOP_INFO_FEATURE
This feature asserts that the loop info of the task is available in the framework.
otawa::hard::MEMORY_FEATURE
p::interfaced_feature< const Memory > MEMORY_FEATURE
This feature ensures we have obtained the memory configuration of the system.
otawa::Processor::require
void require(const AbstractFeature &feature)
Usually called from a processor constructor, this method records a required feature for the work of t...
Definition: proc_Processor.cpp:758
otawa::dfa::INITIAL_STATE_FEATURE
p::interfaced_feature< State > INITIAL_STATE_FEATURE
This feature ensures that the executable and user information have been parsed to make the initial st...
otawa::COLLECTED_CFG_FEATURE
p::interfaced_feature< const CFGCollection > COLLECTED_CFG_FEATURE
This feature asserts that all CFG involved in the current computation has been collected and accessib...
otawa::ipet::FLOW_FACTS_FEATURE
p::feature FLOW_FACTS_FEATURE
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of...
otawa::clp::Analysis::Analysis
Analysis(p::declare &r=reg)
Definition: clp_analysis.cpp:3371