OTAWA
2.0
Framework to perform machine analysis and compute WCET.
|
#include <otawa/branch/CondNumber.h>
Static Public Attributes | |
static p::declare | reg |
Static Public Attributes inherited from otawa::CFGProcessor | |
static p::declare | reg |
Static Public Attributes inherited from otawa::Processor | |
static p::id< bool > | COLLECT_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 Processor & | null = _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< bool > | RECURSIVE |
static p::declare | reg |
static p::id< elm::sys::time_t > | RUNTIME |
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< bool > | TIMED |
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 Monitor & | null = __null_mon |
Monitor that output nothing. More... | |
Protected Member Functions | |
virtual void | processBB (otawa::WorkSpace *, CFG *cfg, Block *bb) |
virtual void | setup (WorkSpace *ws) |
This method is called before an anlysis to let the processor do some initialization. More... | |
Protected Member Functions inherited from otawa::BBProcessor | |
const CFG & | blocks () const |
virtual void | cleanupBB (WorkSpace *ws, CFG *cfg, Block *bb) |
When the function doCleanup() is called, this function is called for each basic block of the task. More... | |
void | cleanupCFG (WorkSpace *ws, CFG *cfg) override |
This function may be overridden by a subclass to provide custom cleanup for a CFG. More... | |
virtual void | destroyBB (WorkSpace *ws, CFG *cfg, Block *b) |
Propagate to blocks the destroy action. More... | |
void | destroyCFG (WorkSpace *ws, CFG *cfg) override |
Propagate the destroy phase to CFG resources. More... | |
virtual void | dumpBB (Block *v, io::Output &out) |
Function called when a dump of the result of the analysis is required. More... | |
void | dumpCFG (CFG *g, io::Output &out) override |
The default implementation of CFGProcessor dump calls this function for each CFG of the program. More... | |
void | processCFG (WorkSpace *ws, CFG *cfg) override |
See CFGProcessor::processCFG() More... | |
template<class T > | |
void | trackBB (const AbstractFeature &feature, const Identifier< T * > &id) |
template<class T > | |
void | trackBB (const AbstractFeature &feature, const Identifier< T > &id) |
Protected Member Functions inherited from otawa::CFGProcessor | |
CFG * | cfg (void) const |
const CFGCollection & | cfgs (void) const |
void | configure (const PropList &props) override |
Configure the current processor. More... | |
void | destroy (WorkSpace *ws) override |
This method is called when the properties produced by a processor are no more useful and can be release. More... | |
void | doCleanUp (void) |
Trigger associated with CFG. More... | |
void | dump (WorkSpace *ws, Output &out) override |
Function called for debugging purpose when dump properties (otawa::DUMP, otawa::DUMP_FOR) are provided. More... | |
Block * | entry () const |
Block * | exit () const |
virtual void | processAll (WorkSpace *ws) |
This function is called once the CFG collection has been obtained. More... | |
void | processWorkSpace (WorkSpace *ws) override |
Process the given framework. More... | |
string | str (const Address &address) |
Transform an address to a smart string, that is, if a source line is available, transform it to "source_file:source_line", if the CFG has a label, it gives "label + 0xoffset", else return the address. More... | |
string | str (const Address &base, const Address &address) |
Transform an address to a smart string, that is, if a source line is available, transform it to "source_file:source_line", if the CFG has a label, it gives "label + 0xoffset", else return the address. More... | |
CFG * | taskCFG () const |
Block * | taskEntry () const |
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... | |
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... | |
Progress & | progress (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... | |
WorkSpace * | workspace (void) const |
Protected Member Functions inherited from otawa::Monitor | |
void | setWorkspace (WorkSpace *workspace) |
Update the workspace in the monitor. More... | |
Private Attributes | |
int * | current_index |
Additional Inherited Members | |
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 Attributes inherited from otawa::Monitor | |
elm::io::Output | log |
elm::io::Output | out |
Protected Attributes inherited from otawa::Processor | |
PropList * | stats |
Protected Attributes inherited from otawa::Monitor | |
t::uint32 | flags |
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 |
Associate numbers to each branch relatively to their BHT set.
otawa::branch::CondNumber::CondNumber | ( | void | ) |
|
protectedvirtual |
Perform the work of the given basic block.
fw | Container framework. |
cfg | Parent CFG. |
bb | Basic block to process. |
Implements otawa::BBProcessor.
This method is called before an anlysis to let the processor do some initialization.
ws | Processed workspace. |
Reimplemented from otawa::Processor.
References otawa::hard::BHT_CONFIG, otawa::branch::COND_MAX, current_index, otawa::branch::NUMBERED_CONDITIONS_FEATURE, otawa::Processor::track(), and otawa::Processor::ws.
|
private |
Referenced by setup().
|
static |