Otawa
0.10
|
Compute execution time by edge using the parametric exegraph approach. More...
#include <otawa/etime/EdgeTimeBuilder.h>
Classes | |
class | EventComparator |
Public Types | |
enum | place_t { IN_PREFIX = 0, IN_EDGE = 1, IN_BLOCK = 2, IN_SIZE = 3 } |
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 | |
EdgeTimeBuilder (p::declare &r=reg) | |
void | processWorkSpace (WorkSpace *ws) |
Process the given framework. More... | |
elm::genstruct::SLList < PathContext * > * | buildListOfPathContexts (BasicBlock *bb, int depth=1) |
void | FillSequence (PathContext *ctxt, elm::genstruct::SLList< PathContext * > *context_list, int depth) |
ParExeSequence * | buildSequence (PathContext *ctxt) |
void | analyzePathContext (PathContext *ctxt, int context_index) |
int | analyzeTimingContext (ParExeGraph *graph, TimingContext *NC_ctxt, TimingContext *FM_ctxt) |
void | outputGraph (ParExeGraph *graph, int bb_number, int context_number, int case_number, const string &info="") |
Output the given graph in the directory configured by GRAPHS_OUTPUT_DIRECTORY. More... | |
elm::String | name (void) const |
elm::Version | version (void) const |
void | process (WorkSpace *ws, const PropList &props=PropList::EMPTY) |
Execute the code processor on the given framework. More... | |
WorkSpace * | workspace (void) |
Get the current workspace. More... | |
bool | isVerbose (void) const |
Test if the verbosity is activated. More... | |
bool | logFor (log_level_t tested) const |
Test if the given log level is activated or not. More... | |
log_level_t | logLevel (void) const |
Public Attributes | |
elm::io::Output | out |
Provide a stream to perform output for the user. More... | |
elm::io::Output | log |
Provide a stream to perform log output. More... | |
Static Public Attributes | |
static p::declare | reg |
static Identifier< 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 Identifier< 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 Identifier< bool > | RECURSIVE |
static Identifier< Progress * > | PROGRESS |
Install. More... | |
static Identifier< bool > | COLLECT_STATS |
This property allows to activate collection of statistics for the work of the current processor. More... | |
static Identifier < 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 Identifier < 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 Identifier< bool > & | VERBOSE = otawa::VERBOSE |
This property activates the verbose mode of the processor: information about the processor work will be displayed. More... | |
static Identifier< 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 Identifier < elm::system::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 Monitor & | null = __null_mon |
Monitor that output nothing. More... | |
Protected Types | |
typedef Pair< Event *, place_t > | event_t |
typedef genstruct::Vector < event_t > | event_list_t |
typedef genstruct::Vector < ConfigSet > | config_list_t |
Protected Member Functions | |
virtual void | configure (const PropList &props) |
Configure the current processor. More... | |
virtual void | setup (WorkSpace *ws) |
This method is called before an anlysis to let the processor do some initialization. More... | |
virtual void | processBB (WorkSpace *ws, CFG *cfg, BasicBlock *bb) |
Perform the work of the given basic block. More... | |
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 ParExeGraph * | make (ParExeSequence *seq) |
This method is called to build the parametric execution graph. More... | |
virtual void | processEdge (WorkSpace *ws, CFG *cfg) |
virtual void | processSequence (void) |
Compute and process the time for the given sequence. More... | |
virtual void | clean (ParExeGraph *graph) |
Called to cleanup a graph allocated by a call to make(). More... | |
void | processTimes (const config_list_t &confs) |
Process the computed time and generate associated objective functions and constraints. More... | |
void | applyStrictSplit (const config_list_t &confs) |
Application of two time approach, LTS and HTS time. More... | |
void | applyFloppySplit (const config_list_t &confs) |
Application of two time approach, LTS and HTS time. More... | |
void | applyWeightedSplit (const config_list_t &confs) |
Performing split by computing an heuristic based on weights of BB and events. More... | |
void | contributeConst (void) |
Generate contribution for constant events. More... | |
void | contributeSplit (const config_list_t &confs, t::uint32 pos, t::uint32 neg, t::uint32 com, ot::time lts_time, ot::time hts_time) |
Contribute to WCET estimation in split way, x_HTS and x_LTS, with two sets of times. More... | |
void | makeSplit (const config_list_t &confs, int p, ConfigSet &hts, ot::time <s_time, ot::time &hts_time) |
Build the set after split. More... | |
genstruct::Vector< Resource * > * | ressources (void) |
virtual int | cacheMissPenalty (Address addr) const |
virtual int | memoryLatency (Address addr) const |
virtual void | buildNCTimingContextListForICache (elm::genstruct::SLList< TimingContext * > *list, ParExeSequence *seq) |
virtual void | buildFMTimingContextListForICache (elm::genstruct::SLList< TimingContext * > *list, ParExeSequence *seq) |
virtual void | computeDefaultTimingContextForICache (TimingContext *dtctxt, ParExeSequence *seq) |
virtual void | BuildVectorOfHwResources () |
virtual void | configureMem (WorkSpace *ws) |
virtual void | processCFG (WorkSpace *ws, CFG *cfg) |
See CFGProcessor::processCFG() More... | |
virtual void | cleanupCFG (WorkSpace *ws, CFG *cfg) |
This function may be overridden by a subclass to provide custom cleanup for a CFG. More... | |
virtual void | cleanupBB (WorkSpace *ws, CFG *cfg, BasicBlock *bb) |
When the function doCleanup() is called, this function is called for each basic block of the task. More... | |
template<class T > | |
void | trackBB (const AbstractFeature &feature, const Identifier< T * > &id) |
Track and delete the content of the given identifier on each basic block. More... | |
template<class T > | |
void | trackBB (const AbstractFeature &feature, const Identifier< T > &id) |
Track and remove properties put on basic blocks. More... | |
void | doCleanUp (void) |
Trigger associated with CFG. 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 * | cfg (void) const |
Get the current CFG. More... | |
bool | isTimed (void) const |
Test if the timed mode is activated (recording of timings in the statistics). More... | |
bool | recordsStats (void) const |
Test if the statictics mode is activated. More... | |
bool | isAllocated (void) const |
bool | isPrepared (void) const |
bool | isCollectingStats (void) const |
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... | |
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 | invalidate (const AbstractFeature &feature) |
Usually called from a processor constructor, this method records a feature invalidated by the work of the current processor. More... | |
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 |
Get the current workspace. More... | |
Progress & | progress (void) |
Get the current progress handler. More... | |
void | recordStat (const AbstractFeature &feature, StatCollector *collector) |
Add a statistics collector to the current workspace collection. More... | |
void | addCleaner (const AbstractFeature &feature, Cleaner *cleaner) |
Add a cleaner for the given feature. More... | |
template<class T > | |
void | addRemover (const AbstractFeature &feature, const Ref< T, Identifier< T > > &ref) |
template<class T > | |
void | addDeletor (const AbstractFeature &feature, const Ref< T *, Identifier< T * > > &ref) |
virtual void | prepare (WorkSpace *ws) |
This method called to let the processor customize its requirements according to some generic feature. More... | |
virtual void | collectStats (WorkSpace *ws) |
This method is invoked if the user has required to collect statistics about the processor. More... | |
virtual void | processFrameWork (WorkSpace *fw) |
Process the given workspace. More... | |
template<class T > | |
T * | track (const AbstractFeature &feature, T *object) |
template<class T > | |
void | track (const AbstractFeature &feature, const Ref< T *, Identifier< T * > > &ref) |
Track the release of an allocated object assigned to an identifier relatively to the given feature. More... | |
template<class T > | |
void | track (const AbstractFeature &feature, const Ref< T *, const Identifier< T * > > &ref) |
Track the release of an allocated object assigned to an identifier relatively to the given feature. More... | |
virtual void | requireDyn (WorkSpace *ws, const PropList &props) |
Method called after registration requirements to support dynamic requirements. More... | |
void | setWorkspace (WorkSpace *workspace) |
Set the current workspace. More... | |
Static Protected Member Functions | |
static EventCollector::case_t | make (const Event *e, EdgeTimeBuilder::place_t place, bool on) |
Build an event selector case. More... | |
Protected Attributes | |
bool | _do_output_graphs |
bool | _do_consider_icache |
const hard::Memory * | mem |
const hard::Cache * | icache |
ParExeProc * | _microprocessor |
elm::genstruct::Vector < Resource * > | _hw_resources |
PropList * | stats |
t::uint32 | flags |
Contains various bit flags. More... | |
Static Protected Attributes | |
static const t::uint32 | IS_TIMED = 0x01 << CUSTOM_SHIFT |
static const t::uint32 | IS_ALLOCATED = 0x04 << CUSTOM_SHIFT |
static const t::uint32 | IS_PREPARED = 0x08 << CUSTOM_SHIFT |
static const t::uint32 | IS_COLLECTING = 0x10 << CUSTOM_SHIFT |
static const t::uint32 | IS_VERBOSE = 0x01 |
static const t::uint32 | CUSTOM_SHIFT = 16 |
Private Member Functions | |
void | apply (Event *event, ParExeInst *inst) |
Apply the given event to the given instruction. More... | |
void | rollback (Event *event, ParExeInst *inst) |
Rollback the given event to the given instruction. More... | |
EventCollector * | get (Event *event) |
Get the collector for the given event. More... | |
void | genForOneCost (ot::time cost, Edge *edge, event_list_t &events) |
Generate the constraints when only one cost is considered for the edge. More... | |
ParExeNode * | getBranchNode (void) |
Get the branch node resolving a branch prediction. More... | |
int | splitConfs (const config_list_t &confs, const event_list_t &events, bool &lower) |
Partition the configuration times in two sets: configuration times in [0, p[ are the low time set (LTS) and the configuration times in [p, ...] are the high time set (HTS). More... | |
void | sortEvents (event_list_t &events, BasicBlock *bb, place_t place, Edge *edge=0) |
Sort events according the instructions they apply to. More... | |
void | displayConfs (const genstruct::Vector< ConfigSet > &confs, const event_list_t &events) |
Display the list of configuration sorted by cost. More... | |
int | countVarEvents (const event_list_t &events) |
Count the number of variable events in the event list. More... | |
Private Attributes | |
bool | _explicit |
ilp::System * | sys |
bool | predump |
int | event_th |
Edge * | edge |
genstruct::Vector< event_t > | all_events |
event_list_t | events |
ParExeSequence * | seq |
ParExeGraph * | graph |
ParExeNode * | bnode |
ParExeEdge * | bedge |
BasicBlock * | source |
BasicBlock * | target |
genstruct::HashTable< Event *, EventCollector * > | colls |
Compute execution time by edge using the parametric exegraph approach.
Notice that only two times are considered by edge: worst time and best time. Possible execution are classified in two sets, worst and best, and max of these sets represent the worst and the best time. The repartition is made to maximize the gap between max of best set and min of worst set.
|
protected |
|
protected |
|
protected |
|
inherited |
|
inherited |
otawa::etime::EdgeTimeBuilder::EdgeTimeBuilder | ( | p::declare & | r = reg | ) |
|
inlineprotectedinherited |
Add a cleaner for the given feature.
A cleaner is an object with a virtual destructor that is called when the associated feature is removed: this let the processor to release and clean up the resources it allocated to implement the provided features.
feature | Feature the cleaner apply to. |
cleaner | Cleaner to add. |
Referenced by otawa::DelayedBuilder::cleanup(), otawa::StackAnalysis::cleanup(), otawa::Dominance::processCFG(), otawa::CFGCollector::processWorkSpace(), otawa::clp::Analysis::processWorkSpace(), and otawa::Processor::recordStat().
|
inlineprotectedinherited |
Referenced by otawa::Virtualizer::cleanup().
|
inlineprotectedinherited |
Referenced by otawa::Virtualizer::cleanup().
|
inherited |
|
inherited |
|
private |
Apply the given event to the given instruction.
event | Event to apply. |
inst | Instruction to apply to. |
References _, bedge, otawa::etime::BRANCH, otawa::etime::Event::cost(), otawa::etime::FETCH, otawa::ParExeInst::fetchNode(), getBranchNode(), otawa::etime::Event::kind(), otawa::ParExeNode::latency(), otawa::etime::MEM, otawa::ParExeNode::setLatency(), otawa::ParExeEdge::setLatency(), and otawa::ParExeEdge::SOLID.
Referenced by processSequence().
|
protected |
Application of two time approach, LTS and HTS time.
To perform the split, an evaluation function is maximized according the two sets so that:
References all_events, contributeSplit(), edge, events, genForOneCost(), otawa::etime::ConfigSet::isFeasible(), otawa::Monitor::isVerbose(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, makeSplit(), otawa::etime::maskToString(), otawa::sem::neg(), otawa::etime::ConfigSet::pop(), otawa::etime::ConfigSet::push(), otawa::etime::ConfigSet::scan(), and elm::genstruct::Vector< T >::top().
|
protected |
Application of two time approach, LTS and HTS time.
To perform the split, an evaluation function is maximized according the two sets so that:
References all_events, contributeSplit(), edge, events, genForOneCost(), hex(), otawa::etime::ConfigSet::isFeasible(), otawa::Monitor::isVerbose(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, makeSplit(), otawa::etime::maskToString(), otawa::sem::neg(), otawa::etime::ConfigSet::pop(), otawa::etime::ConfigSet::push(), otawa::etime::ConfigSet::scan(), and elm::genstruct::Vector< T >::top().
|
protected |
Performing split by computing an heuristic based on weights of BB and events.
confs | List of configurations. |
References cerr, contributeSplit(), edge, events, otawa::Monitor::isVerbose(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, otawa::Monitor::LOG_BB, otawa::Monitor::logFor(), makeSplit(), otawa::etime::maskToString(), otawa::clp::max(), otawa::sem::neg(), otawa::etime::ConfigSet::pop(), otawa::etime::ConfigSet::push(), otawa::etime::ConfigSet::scan(), otawa::Edge::target(), elm::genstruct::Vector< T >::top(), and otawa::WEIGHT.
Referenced by processTimes().
|
protectedvirtualinherited |
|
inherited |
|
protectedvirtualinherited |
|
inherited |
|
protectedvirtualinherited |
|
protectedvirtualinherited |
|
inlineprotectedinherited |
Get the current CFG.
References otawa::CFGProcessor::_cfg.
Referenced by otawa::DelayedBuilder::fix(), otawa::PSTBuilder::getVCFG(), otawa::ContextualProcessor::processCFG(), otawa::DelayedBuilder::processWorkSpace(), and otawa::CFGProcessor::processWorkSpace().
|
protectedvirtual |
|
protectedvirtual |
This method is called after the end of the processor analysis to let it do some clean up.
ws | Workspace to work on. |
Reimplemented from otawa::Processor.
References elm::genstruct::Vector< T >::clear(), colls, events, and sys.
|
protectedvirtualinherited |
When the function doCleanup() is called, this function is called for each basic block of the task.
As a default do nothing.
ws | Current workspace. |
cfg | Current CFG. |
bb | Current BB. |
Referenced by otawa::BBProcessor::cleanupCFG().
This function may be overridden by a subclass to provide custom cleanup for a CFG.
It is called for each CFG of the task when doCleanUp() is called. As a default, do nothing.
ws | Current workspace. |
cfg | Current CFG. |
Reimplemented from otawa::CFGProcessor.
References otawa::cfgio::bb(), and otawa::BBProcessor::cleanupBB().
|
protectedvirtualinherited |
This method is invoked if the user has required to collect statistics about the processor.
In its default implementation, this method does nothing but it may be customized if the current implementation provides statistics. It is called after the main computation of the processor.
Statistics must be objects inheriting from the class StatCollector and recorded with method recordStat().
ws | Current workspace. |
Reimplemented in otawa::dcache::CatConstraintBuilder, otawa::ipet::WCETComputation, and otawa::CAT2OnlyConstraintBuilder.
Referenced by otawa::Processor::process().
|
protectedvirtualinherited |
|
protectedvirtual |
Configure the current processor.
props | Configuration properties. |
Reimplemented from otawa::GraphBBTime< ParExeGraph >.
References _explicit, otawa::GraphBBTime< G >::configure(), event_th, otawa::etime::EVENT_THRESHOLD, otawa::ipet::EXPLICIT, predump, and otawa::etime::PREDUMP.
|
inlineprotectedvirtualinherited |
References otawa::hard::CACHE_CONFIGURATION, and otawa::hard::MEMORY.
|
protected |
Generate contribution for constant events.
References all_events, otawa::etime::ALWAYS, edge, make(), otawa::etime::NEVER, and otawa::ipet::VAR.
Referenced by contributeSplit(), and genForOneCost().
|
protected |
Contribute to WCET estimation in split way, x_HTS and x_LTS, with two sets of times.
confs | Time configuration. |
p | Position of split. |
References _explicit, otawa::ilp::Constraint::addLeft(), otawa::ilp::System::addObjectFunction(), otawa::ilp::Constraint::addRight(), buf, otawa::BasicBlock::cfg(), contributeConst(), elm::genstruct::Vector< T >::count(), edge, events, otawa::ilp::Constraint::GE, otawa::CFG::label(), otawa::ilp::Constraint::LE, elm::genstruct::Vector< T >::length(), make(), otawa::ilp::System::newConstraint(), otawa::ilp::System::newVar(), otawa::BasicBlock::number(), source, sys, target, elm::StringBuffer::toString(), and otawa::ipet::VAR.
Referenced by applyFloppySplit(), applyStrictSplit(), and applyWeightedSplit().
|
private |
Count the number of variable events in the event list.
events | Event list to process. |
References elm::genstruct::Vector< T >::length(), and otawa::etime::SOMETIMES.
Referenced by processEdge().
|
private |
Display the list of configuration sorted by cost.
confs | List of configuration to display. |
References elm::genstruct::Vector< T >::length(), and otawa::Monitor::log.
Referenced by processSequence().
|
protectedinherited |
Trigger associated with CFG.
For each CFG, perform a call to cleanupCFG() that may be customized by a subclass.
References otawa::CFGProcessor::cleanupCFG(), otawa::CFGCollection::count(), otawa::CFGCollection::get(), otawa::INVOLVED_CFGS, and otawa::Processor::workspace().
|
inherited |
|
private |
Generate the constraints when only one cost is considered for the edge.
cost | Edge cost. |
edge | Current edge. |
events | List of edge events. |
References otawa::ilp::System::addObjectFunction(), contributeConst(), otawa::Monitor::log, otawa::Monitor::LOG_BB, otawa::Monitor::logFor(), make(), otawa::etime::SOMETIMES, sys, and otawa::ipet::VAR.
Referenced by applyFloppySplit(), applyStrictSplit(), and processSequence().
|
private |
Get the collector for the given event.
If it doesn't exist, create it.
event | Concerned event. |
References colls.
|
private |
Get the branch node resolving a branch prediction.
References bnode, otawa::BasicBlock::controlInst(), seq, and source.
Referenced by apply().
|
protectedinherited |
Usually called from a processor constructor, this method records a feature invalidated by the work of the current processor.
feature | Invalidated feature. |
References otawa::Processor::_reg, otawa::AbstractRegistration::features, otawa::Monitor::flags, otawa::FeatureUsage::invalidate, otawa::Processor::IS_ALLOCATED, otawa::Processor::isAllocated(), and otawa::Processor::isPrepared().
Referenced by otawa::LoopReductor::LoopReductor().
|
inlineprotectedinherited |
References flags.
Referenced by otawa::Processor::invalidate(), otawa::Processor::provide(), otawa::Processor::require(), and otawa::Processor::use().
|
inlineprotectedinherited |
References flags.
Referenced by otawa::Processor::process(), and otawa::Processor::recordStat().
|
inlineprotectedinherited |
References flags.
Referenced by otawa::Processor::invalidate(), otawa::Processor::process(), otawa::Processor::provide(), otawa::Processor::require(), and otawa::Processor::use().
|
inlineprotectedinherited |
Test if the timed mode is activated (recording of timings in the statistics).
References flags.
Referenced by otawa::Processor::process().
|
inlineinherited |
Test if the verbosity is activated.
References flags.
Referenced by otawa::ccg::LBlockBuilder::addLBlock(), otawa::LBlockBuilder::addLBlock(), applyFloppySplit(), applyStrictSplit(), applyWeightedSplit(), makeSplit(), processSequence(), and otawa::dcache::BlockBuilder::setup().
|
inlineinherited |
Test if the given log level is activated or not.
tested | Tested log level. |
Referenced by otawa::CFGBuilder::addCFG(), otawa::ipet::ConstraintLoader::addConstraint(), otawa::PFGBuilder::addFunction(), applyWeightedSplit(), otawa::DelayedBuilder::buildBB(), otawa::CFGBuilder::buildCFG(), otawa::DelayedBuilder::buildEdges(), otawa::branch::BranchBuilder::categorize(), otawa::ipet::FlowFactLoader::cleanup(), otawa::dcache::CATBuilder::cleanup(), otawa::DelayedBuilder::cloneEdge(), otawa::ACSBuilder::configure(), otawa::CAT2Builder::configure(), genForOneCost(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::Processor::init(), otawa::FlowFactLoader::load(), otawa::script::Script::makeConfig(), otawa::CFGBuilder::nextBB(), otawa::FlowFactLoader::onLoop(), otawa::FlowFactLoader::onMemoryAccess(), otawa::FlowFactLoader::onNoInline(), otawa::FlowFactLoader::onReturn(), otawa::FlowFactLoader::onSetInlining(), otawa::Processor::process(), otawa::branch::OnlyConsBuilder::processBB(), otawa::branch::CondNumber::processBB(), otawa::ipet::FlowFactConstraintBuilder::processBB(), otawa::dcache::CLPBlockBuilder::processBB(), otawa::etime::StandardEventBuilder::processBB(), otawa::dcache::BlockBuilder::processBB(), otawa::CFGCheckSummer::processCFG(), otawa::EdgeProcessor::processCFG(), otawa::CAT2Builder::processCFG(), otawa::display::CFGOutput::processCFG(), otawa::ipet::ConstraintLoader::processCFG(), otawa::ContextualProcessor::processCFG(), otawa::BBProcessor::processCFG(), processEdge(), otawa::VarTextDecoder::processEntry(), otawa::dcache::CATBuilder::processLBlockSet(), otawa::ACSMayBuilder::processLBlockSet(), otawa::CAT2Builder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), processSequence(), otawa::VarTextDecoder::processWorkSpace(), otawa::TextDecoder::processWorkSpace(), otawa::LBlockProcessor::processWorkSpace(), otawa::ipet::WCETComputation::processWorkSpace(), otawa::FixedTextDecoder::processWorkSpace(), otawa::dcache::CatConstraintBuilder::processWorkSpace(), otawa::PFGBuilder::processWorkSpace(), otawa::StackAnalysis::processWorkSpace(), otawa::ipet::ILPSystemGetter::processWorkSpace(), otawa::branch::BranchBuilder::processWorkSpace(), otawa::CFGCollector::processWorkSpace(), otawa::CFGProcessor::processWorkSpace(), otawa::Virtualizer::processWorkSpace(), otawa::clp::Analysis::processWorkSpace(), otawa::script::Script::processWorkSpace(), otawa::ilp::Output::setup(), otawa::BBRatioDisplayer::setup(), otawa::dcache::BlockBuilder::setup(), otawa::CFGBuilder::thisBB(), otawa::ipet::FlowFactLoader::transfer(), otawa::Virtualizer::virtualize(), and otawa::script::Script::work().
|
inlineinherited |
Referenced by otawa::script::Script::declareGlobals().
|
protectedvirtual |
This method is called to build the parametric execution graph.
As a default, build a usual ParExeGraph but it may be overridden to build a custom graph.
seq | Sequence to build graph for. |
References otawa::GraphBBTime< ParExeGraph >::_hw_resources, otawa::GraphBBTime< ParExeGraph >::_microprocessor, otawa::ParExeGraph::build(), graph, and otawa::Processor::workspace().
Referenced by contributeConst(), contributeSplit(), genForOneCost(), and processSequence().
|
staticprotected |
Build an event selector case.
References otawa::etime::EventCollector::BLOCK_OFF, otawa::etime::EventCollector::BLOCK_ON, otawa::etime::EDGE, IN_BLOCK, IN_EDGE, IN_PREFIX, otawa::etime::EventCollector::PREFIX_OFF, otawa::etime::EventCollector::PREFIX_ON, and otawa::etime::Event::type().
|
protected |
Build the set after split.
confs | Current configuration. |
p | Split position. |
hts | HTS result set. |
lts_time | LTS time. |
hts_time | HTS time. |
References otawa::etime::ConfigSet::add(), events, otawa::Monitor::isVerbose(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, and elm::genstruct::Vector< T >::top().
Referenced by applyFloppySplit(), applyStrictSplit(), and applyWeightedSplit().
|
protectedvirtualinherited |
|
inlineinherited |
Referenced by otawa::CFGCollector::configure(), otawa::display::ILPSystemDisplayer::displayVar(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::script::Script::makeConfig(), otawa::DynProcessor::name(), otawa::display::ILPSystemDisplayer::nameOf(), otawa::FlowFactLoader::onCheckSum(), otawa::Processor::process(), otawa::ccg::ConstraintBuilder::processLBlockSet(), otawa::Processor::Processor(), otawa::ipet::WCETComputation::processWorkSpace(), otawa::dcache::CatConstraintBuilder::processWorkSpace(), otawa::CFGCollector::processWorkSpace(), otawa::FlowFactLoader::scanIgnoreEntry(), otawa::FlowFactLoader::scanMemSet(), otawa::FlowFactLoader::scanRegSet(), otawa::Processor::warn(), and otawa::script::Script::work().
|
inherited |
Output the given graph in the directory configured by GRAPHS_OUTPUT_DIRECTORY.
The name of the file is formed by the concatenation of:
"b" bb_number "-ctxt" context_index "-case" case_index ".dot";
graph | Graph to output. |
bb_number | Basic number. |
context_index | Index of the context. |
case_index | Index of case. |
info | Information to display in the graph. |
Referenced by processSequence().
|
protectedvirtualinherited |
This method called to let the processor customize its requirements according to some generic feature.
When overload, the original method MUST be called at the end of the custom overriding implementation.
ws | Current workspace. |
References otawa::Monitor::flags, and otawa::Processor::IS_PREPARED.
Referenced by otawa::Processor::process().
|
inherited |
Execute the code processor on the given framework.
fw | Workspace to work on. |
props | Configuration properties. |
References _, otawa::Processor::_reg, elm::genstruct::Vector< T >::add(), otawa::Processor::cleaners, otawa::Processor::cleanup(), otawa::Processor::collectStats(), otawa::Processor::configure(), elm::genstruct::Vector< T >::contains(), otawa::WorkSpace::getDependency(), otawa::FeatureUsage::invalidate, otawa::WorkSpace::invalidate(), otawa::WorkSpace::isCancelled(), otawa::Processor::isCollectingStats(), otawa::Processor::isPrepared(), otawa::WorkSpace::isProvided(), otawa::Processor::isTimed(), kind, otawa::Monitor::log, otawa::Monitor::LOG_CFG, otawa::Monitor::LOG_DEPS, otawa::Monitor::LOG_PROC, otawa::Monitor::logFor(), otawa::AbstractRegistration::name(), otawa::Processor::name(), otawa::Processor::prepare(), otawa::Processor::processWorkSpace(), otawa::FeatureUsage::provide, otawa::WorkSpace::provide(), otawa::Processor::recordsStats(), elm::genstruct::Vector< T >::remove(), otawa::FeatureUsage::require, otawa::WorkSpace::require(), otawa::Processor::RUNTIME, otawa::Processor::setup(), otawa::Processor::stats, otawa::FeatureUsage::use, otawa::AbstractRegistration::uses(), otawa::Processor::version(), and otawa::Processor::ws.
Referenced by otawa::PFGBuilder::finalizeBB(), otawa::WorkSpace::getCFGInfo(), otawa::FlowFactLoader::onIgnoreEntry(), otawa::SilentFeature::process(), otawa::ActualFeature::process(), otawa::DynProcessor::process(), otawa::Feature< T, C >::process(), otawa::p::feature::process(), otawa::TextDecoder::processWorkSpace(), otawa::cat::CATBuilder::processWorkSpace(), and otawa::DelayedBuilder::setup().
|
protectedvirtual |
Perform the work of the given basic block.
fw | Container framework. |
cfg | Parent CFG. |
bb | Basic block to process. |
Implements otawa::BBProcessor.
References edge, in, otawa::BasicBlock::isEnd(), and processEdge().
See CFGProcessor::processCFG()
Implements otawa::CFGProcessor.
Reimplemented in otawa::BBRatioDisplayer, otawa::CFGSaver, otawa::CFGChecker, and otawa::cfgio::Output.
References otawa::ot::address(), otawa::cfgio::bb(), otawa::Monitor::log, otawa::Monitor::LOG_BB, otawa::Monitor::logFor(), and otawa::BBProcessor::processBB().
Referenced by otawa::cfgio::Output::processCFG(), otawa::CFGChecker::processCFG(), otawa::CFGSaver::processCFG(), and otawa::BBRatioDisplayer::processCFG().
References elm::genstruct::Vector< T >::add(), elm::genstruct::DLList< T, class >::addLast(), all_events, otawa::BLOCK, bnode, otawa::display::BODY, otawa::Edge::CALL, otawa::CALLED_BY, otawa::Edge::calledCFG(), otawa::BasicBlock::cfg(), elm::genstruct::Vector< T >::clear(), countVarEvents(), edge, event_th, events, otawa::CFG::firstBB(), IN_BLOCK, IN_PREFIX, otawa::BasicBlock::isEntry(), otawa::Edge::kind(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, otawa::Monitor::LOG_BLOCK, otawa::Monitor::logFor(), elm::genstruct::Vector< T >::pop(), processSequence(), otawa::PROLOGUE, seq, otawa::etime::SOMETIMES, sortEvents(), otawa::Edge::source(), source, otawa::Edge::target(), and target.
Referenced by processBB().
|
protectedvirtualinherited |
Process the given workspace.
fw | Workspace to process. |
Referenced by otawa::Processor::processWorkSpace().
|
protectedvirtual |
Compute and process the time for the given sequence.
References _, otawa::GraphBBTime< ParExeGraph >::_do_output_graphs, elm::genstruct::Vector< T >::add(), all_events, otawa::etime::ALWAYS, otawa::ParExeGraph::analyze(), apply(), otawa::BLOCK, elm::genstruct::Vector< T >::clear(), elm::genstruct::Vector< T >::count(), displayConfs(), edge, events, otawa::ParExeGraph::firstNode(), genForOneCost(), graph, IN_PREFIX, otawa::etime::Event::inst(), elm::genstruct::Vector< T >::isEmpty(), otawa::Monitor::isVerbose(), elm::genstruct::Vector< T >::length(), otawa::Monitor::log, otawa::Monitor::LOG_BB, otawa::Monitor::logFor(), make(), otawa::etime::NEVER, otawa::BasicBlock::number(), otawa::etime::Event::occurrence(), otawa::GraphBBTime< ParExeGraph >::outputGraph(), predump, processTimes(), rollback(), seq, otawa::etime::SOMETIMES, source, and target.
Referenced by processEdge().
|
protected |
Process the computed time and generate associated objective functions and constraints.
References applyWeightedSplit().
Referenced by processSequence().
|
virtualinherited |
Process the given framework.
fw | Framework to process. |
Reimplemented from otawa::CFGProcessor.
|
inlineprotectedinherited |
Get the current progress handler.
|
protectedinherited |
Usually called from a processor constructor, this method records a feature provided by the work of the current processor.
feature | Provided feature. |
References otawa::Processor::_reg, otawa::AbstractRegistration::features, otawa::Monitor::flags, otawa::Processor::IS_ALLOCATED, otawa::Processor::isAllocated(), otawa::Processor::isPrepared(), and otawa::FeatureUsage::provide.
Referenced by otawa::ipet::BasicConstraintsBuilder::BasicConstraintsBuilder(), otawa::CFGBuilder::CFGBuilder(), otawa::CFGCheckSummer::CFGCheckSummer(), otawa::CFGCollector::CFGCollector(), otawa::CFGNormalizer::CFGNormalizer(), otawa::ContextTreeBuilder::ContextTreeBuilder(), otawa::ContextTreeByCFGBuilder::ContextTreeByCFGBuilder(), otawa::DeadCodeAnalysis::DeadCodeAnalysis(), otawa::Dominance::Dominance(), otawa::EdgeACSBuilder::EdgeACSBuilder(), otawa::EdgeCAT2Builder::EdgeCAT2Builder(), otawa::EdgeCAT2ConstraintBuilder::EdgeCAT2ConstraintBuilder(), otawa::ExeGraphBBTime< G >::ExeGraphBBTime(), otawa::FirstLastBuilder::FirstLastBuilder(), otawa::ipet::FlowFactConstraintBuilder::FlowFactConstraintBuilder(), otawa::ipet::ILPSystemGetter::ILPSystemGetter(), otawa::LoopReductor::LoopReductor(), otawa::PCGBuilder::PCGBuilder(), otawa::PFGBuilder::PFGBuilder(), otawa::PostDominance::PostDominance(), otawa::PSTBuilder::PSTBuilder(), otawa::TextDecoder::TextDecoder(), otawa::ipet::TrivialDataCacheManager::TrivialDataCacheManager(), and otawa::VarTextDecoder::VarTextDecoder().
|
inlineprotectedinherited |
Test if the statictics mode is activated.
Referenced by otawa::Processor::init(), otawa::Processor::process(), and otawa::CFGProcessor::processWorkSpace().
|
protectedinherited |
Add a statistics collector to the current workspace collection.
The statistics object is tracked and linked to the feature. In case of the feature invalidation, the statistics information instance is purged of the statistics collector.
feature | Feature to link the collector to. |
collector | Statistics collector to add. |
References otawa::StatInfo::add(), otawa::Processor::addCleaner(), otawa::Processor::isCollectingStats(), and otawa::Processor::workspace().
Referenced by otawa::CAT2OnlyConstraintBuilder::collectStats(), otawa::ipet::WCETComputation::collectStats(), and otawa::dcache::CatConstraintBuilder::collectStats().
|
protectedinherited |
Usually called from a processor constructor, this method records a required feature for the work of the current processor.
feature | Required feature. |
References otawa::Processor::_reg, otawa::AbstractRegistration::features, otawa::Monitor::flags, otawa::Processor::IS_ALLOCATED, otawa::Processor::isAllocated(), otawa::Processor::isPrepared(), and otawa::FeatureUsage::require.
Referenced by otawa::ipet::BasicConstraintsBuilder::BasicConstraintsBuilder(), otawa::CFGBuilder::CFGBuilder(), otawa::CFGCollector::CFGCollector(), otawa::CFGNormalizer::CFGNormalizer(), otawa::ContextTreeBuilder::ContextTreeBuilder(), otawa::ContextTreeByCFGBuilder::ContextTreeByCFGBuilder(), otawa::ContextualProcessor::ContextualProcessor(), otawa::DeadCodeAnalysis::DeadCodeAnalysis(), otawa::EdgeACSBuilder::EdgeACSBuilder(), otawa::EdgeCAT2Builder::EdgeCAT2Builder(), otawa::EdgeCAT2ConstraintBuilder::EdgeCAT2ConstraintBuilder(), otawa::FirstLastBuilder::FirstLastBuilder(), otawa::ipet::FlowFactConstraintBuilder::FlowFactConstraintBuilder(), otawa::LinkedBlocksDetector::LinkedBlocksDetector(), otawa::LoopReductor::LoopReductor(), otawa::PCGBuilder::PCGBuilder(), otawa::PFGBuilder::PFGBuilder(), otawa::PSTBuilder::PSTBuilder(), otawa::FeatureRequirer::require(), otawa::TextDecoder::TextDecoder(), otawa::ipet::TrivialDataCacheManager::TrivialDataCacheManager(), and otawa::script::Script::work().
|
protectedvirtualinherited |
Method called after registration requirements to support dynamic requirements.
As a default, do nothing.
ws | Current workspace. |
props | Current properties. |
|
inlineprotected |
References otawa::GraphBBTime< ParExeGraph >::_hw_resources.
|
private |
Rollback the given event to the given instruction.
event | Event to apply. |
inst | Instruction to apply to. |
References _, bedge, otawa::etime::BRANCH, cerr, otawa::etime::FETCH, otawa::ParExeInst::fetchNode(), graph, otawa::etime::Event::kind(), otawa::ParExeNode::latency(), otawa::etime::MEM, otawa::GenGraph< N, E >::remove(), and otawa::ParExeNode::setLatency().
Referenced by processSequence().
|
protectedvirtual |
This method is called before an anlysis to let the processor do some initialization.
ws | Processed workspace. |
Reimplemented from otawa::Processor.
References sys, and otawa::ipet::SYSTEM.
|
inlineprotectedinherited |
Set the current workspace.
workspace | New current workspace. |
|
private |
Sort events according the instructions they apply to.
events | Data structure to store events to. |
bb | BasicBlock to look events in. |
place | Place in the sequence. |
edge | Edge events to include. |
References otawa::etime::EVENT, IN_EDGE, elm::pair(), and elm::genstruct::Vector< T >::push().
Referenced by processEdge().
|
private |
Partition the configuration times in two sets: configuration times in [0, p[ are the low time set (LTS) and the configuration times in [p, ...] are the high time set (HTS).
confs | Configuration set to find partition for. |
events | List of events. |
References otawa::etime::ConfigSet::isFeasible(), elm::genstruct::Vector< T >::length(), otawa::etime::ConfigSet::pop(), and otawa::etime::ConfigSet::push().
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.
address | Address to display. |
References otawa::Address::null.
Referenced by otawa::ipet::FlowFactLoader::processBB().
|
protectedinherited |
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.
base | Base address of the function containing the give address. |
address | Address to display. |
References _, otawa::CFGProcessor::_cfg, otawa::ProgItem::address(), otawa::ot::address(), otawa::WorkSpace::findInstAt(), otawa::CFG::firstInst(), otawa::FUNCTION_LABEL, hex(), otawa::Address::isNull(), otawa::Address::offset(), and otawa::Processor::workspace().
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Track the release of an allocated object assigned to an identifier relatively to the given feature.
When the feature is deleted, the object is fried and the identifier is removed. It is used as below:
feature | Linked feature. |
ref | Reference to the identifier to remove. |
|
inlineprotectedinherited |
Track the release of an allocated object assigned to an identifier relatively to the given feature.
When the feature is deleted, the object is fried and the identifier is removed. It is used as below:
feature | Linked feature. |
ref | Reference to the identifier to remove. |
|
inlineprotectedinherited |
Track and delete the content of the given identifier on each basic block.
feature | Feature this identifier is linked to. |
id | Identifier of the properties to remove. |
|
inlineprotectedinherited |
Track and remove properties put on basic blocks.
feature | Feature this identifier is linked to. |
id | Identifier of the properties to remove. |
|
protectedinherited |
Usually called from a processor constructor, this method records a feature as used by the work of the current processor.
feature | Used feature. |
References otawa::Processor::_reg, otawa::AbstractRegistration::features, otawa::Monitor::flags, otawa::Processor::IS_ALLOCATED, otawa::Processor::isAllocated(), otawa::Processor::isPrepared(), and otawa::FeatureUsage::use.
|
inlineinherited |
|
protectedinherited |
Display a warning.
message | Message to display. |
References otawa::Monitor::log, otawa::Processor::name(), and otawa::Processor::version().
Referenced by otawa::CFGBuilder::addFile(), otawa::CFGBuilder::buildCFG(), otawa::VarTextDecoder::getInst(), otawa::FlowFactLoader::load(), otawa::FlowFactLoader::onWarning(), otawa::ets::FlowFactLoader::processAST(), otawa::ipet::FlowFactLoader::processBB(), otawa::CFGChecker::processBB(), otawa::ipet::FlowFactConstraintBuilder::processBB(), otawa::etime::StandardEventBuilder::processBB(), otawa::CFGNormalizer::processCFG(), otawa::CFGChecker::processCFG(), otawa::VarTextDecoder::processEntry(), otawa::VarTextDecoder::processWorkSpace(), otawa::FixedTextDecoder::processWorkSpace(), otawa::CFGCollector::processWorkSpace(), otawa::FlowFactLoader::processWorkSpace(), otawa::Processor::processWorkSpace(), otawa::ipet::TrivialInstCacheManager::setup(), and otawa::script::Script::work().
|
inlineinherited |
Get the current workspace.
|
inlineprotectedinherited |
Get the current workspace.
Referenced by otawa::CFGProcessor::doCleanUp(), otawa::PFGBuilder::finalizeBB(), otawa::VarTextDecoder::getBytes(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::ipet::FlowFactLoader::lookLineAt(), make(), otawa::DelayedBuilder::makeNOp(), otawa::DelayedBuilder::next(), otawa::FlowFactLoader::onIgnoreEntry(), otawa::VarTextDecoder::processEntry(), otawa::Processor::recordStat(), otawa::DelayedBuilder::setup(), otawa::DelayedBuilder::size(), and otawa::CFGProcessor::str().
|
protectedinherited |
|
protectedinherited |
Referenced by processSequence().
|
private |
Referenced by configure(), and contributeSplit().
|
protectedinherited |
Referenced by make(), and ressources().
|
protectedinherited |
Referenced by make().
|
private |
Referenced by applyFloppySplit(), applyStrictSplit(), contributeConst(), processEdge(), and processSequence().
|
private |
Referenced by apply(), and rollback().
|
private |
Referenced by getBranchNode(), and processEdge().
|
staticinherited |
This property allows to activate collection of statistics for the work of the current processor.
Referenced by otawa::Processor::init().
|
private |
|
staticprotectedinherited |
|
private |
Referenced by applyFloppySplit(), applyStrictSplit(), applyWeightedSplit(), contributeConst(), contributeSplit(), processBB(), processEdge(), and processSequence().
|
private |
Referenced by configure(), and processEdge().
|
private |
Referenced by applyFloppySplit(), applyStrictSplit(), applyWeightedSplit(), cleanup(), contributeSplit(), makeSplit(), processEdge(), and processSequence().
|
protectedinherited |
Contains various bit flags.
Bits from 0 to CUSTOM_SHIFT - 1 are private while bits from CUSTOM_SHIFT to 31 may be customized. To build a bit mask for custom bit i, the CUSTOM_SHIFT may be used as below:
Referenced by otawa::Processor::init(), otawa::Processor::invalidate(), otawa::Processor::prepare(), otawa::Processor::Processor(), otawa::Processor::provide(), otawa::Processor::require(), otawa::Processor::use(), and otawa::Processor::~Processor().
|
private |
Referenced by clean(), make(), processSequence(), and rollback().
|
protectedinherited |
|
staticprotectedinherited |
|
staticprotectedinherited |
Referenced by otawa::Processor::init().
|
staticprotectedinherited |
Referenced by otawa::Processor::prepare().
|
staticprotectedinherited |
Referenced by otawa::Processor::init().
|
staticprotectedinherited |
|
inherited |
Provide a stream to perform log output.
Should be used only when verbosity is activated.
Referenced by otawa::CFGBuilder::addCFG(), otawa::ipet::ConstraintLoader::addConstraint(), otawa::PFGBuilder::addFunction(), otawa::ccg::LBlockBuilder::addLBlock(), otawa::LBlockBuilder::addLBlock(), applyFloppySplit(), applyStrictSplit(), applyWeightedSplit(), otawa::DelayedBuilder::buildBB(), otawa::CFGBuilder::buildCFG(), otawa::branch::BranchBuilder::categorize(), otawa::ipet::FlowFactLoader::cleanup(), otawa::ipet::TrivialDataCacheManager::configure(), otawa::ACSBuilder::configure(), displayConfs(), otawa::ipet::ConstraintLoader::error(), genForOneCost(), otawa::ipet::ConstraintLoader::getBB(), otawa::VarTextDecoder::getInst(), otawa::ipet::ConstraintLoader::getVar(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::Processor::init(), ipet_error(), otawa::FlowFactLoader::load(), otawa::script::Script::makeConfig(), makeSplit(), otawa::ipet::ConstraintLoader::newEdgeVar(), otawa::CFGBuilder::nextBB(), otawa::script::Script::onError(), otawa::FlowFactLoader::onLoop(), otawa::FlowFactLoader::onMemoryAccess(), otawa::FlowFactLoader::onNoInline(), otawa::FlowFactLoader::onReturn(), otawa::FlowFactLoader::onSetInlining(), otawa::script::Script::onWarning(), otawa::Processor::process(), otawa::branch::OnlyConsBuilder::processBB(), otawa::branch::CondNumber::processBB(), otawa::ipet::FlowFactConstraintBuilder::processBB(), otawa::dcache::CLPBlockBuilder::processBB(), otawa::etime::StandardEventBuilder::processBB(), otawa::dcache::BlockBuilder::processBB(), otawa::CFGCheckSummer::processCFG(), otawa::CAT2Builder::processCFG(), otawa::ipet::ConstraintLoader::processCFG(), otawa::ContextualProcessor::processCFG(), otawa::BBProcessor::processCFG(), processEdge(), otawa::VarTextDecoder::processEntry(), otawa::dcache::CATBuilder::processLBlockSet(), otawa::ACSMayBuilder::processLBlockSet(), otawa::CAT2Builder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), processSequence(), otawa::TextDecoder::processWorkSpace(), otawa::VarTextDecoder::processWorkSpace(), otawa::LBlockProcessor::processWorkSpace(), otawa::ipet::WCETComputation::processWorkSpace(), otawa::FixedTextDecoder::processWorkSpace(), otawa::dcache::CatConstraintBuilder::processWorkSpace(), otawa::StackAnalysis::processWorkSpace(), otawa::ipet::ILPSystemGetter::processWorkSpace(), otawa::branch::BranchBuilder::processWorkSpace(), otawa::CFGCollector::processWorkSpace(), otawa::CFGProcessor::processWorkSpace(), otawa::Virtualizer::processWorkSpace(), otawa::clp::Analysis::processWorkSpace(), otawa::ilp::Output::setup(), otawa::BBRatioDisplayer::setup(), otawa::dcache::BlockBuilder::setup(), otawa::CFGBuilder::thisBB(), otawa::ipet::FlowFactLoader::transfer(), otawa::Virtualizer::virtualize(), otawa::Processor::warn(), and otawa::script::Script::work().
|
staticinherited |
This property identifier is used for setting the log stream used by the processor to write messages (information, warning, error).
Referenced by otawa::Processor::init(), otawa::Manager::loadBin(), and otawa::LiExeGraphBBTime::processBB().
|
staticinherited |
Property passed in the configuration property list of a processor to select the log level between LOG_PROC, LOG_CFG or LOG_BB.
Referenced by otawa::Application::run().
|
protectedinherited |
|
inherited |
Provide a stream to perform output for the user.
Referenced by otawa::DelayedBuilder::buildEdges(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::Processor::init(), otawa::ast::ASTLoader::onError(), otawa::CFGChecker::processBB(), otawa::etime::StandardEventBuilder::processBB(), otawa::hard::Dumper::processWorkSpace(), otawa::ccg::Builder::processWorkSpace(), and otawa::Virtualizer::virtualize().
|
staticinherited |
This property identifier is used for setting the output stream used by the processor to write results.
Referenced by otawa::Processor::init().
|
private |
Referenced by configure(), and processSequence().
|
staticinherited |
Install.
Referenced by otawa::Processor::init().
|
staticinherited |
|
static |
|
staticinherited |
This property identifier is used to store in the statistics of a processor the overall run time of the processor work.
Referenced by otawa::Processor::process().
|
private |
Referenced by getBranchNode(), processEdge(), and processSequence().
|
private |
Referenced by contributeSplit(), getBranchNode(), processEdge(), and processSequence().
|
staticinherited |
This property identifiers is used to pass a property list to the processor that will be used to store statistics about the performed work.
Implicitly, passing such a property activates the statistics recording facilities.
Referenced by otawa::Processor::init().
|
protectedinherited |
|
private |
Referenced by cleanup(), contributeSplit(), genForOneCost(), and setup().
|
private |
Referenced by contributeSplit(), processEdge(), and processSequence().
|
staticinherited |
If the value of the associated property is true (default to false), time statistics will also be collected with other processor statistics.
Passing such a property without PROC_STATS has no effects.
Referenced by otawa::Processor::init().
|
staticinherited |
This property activates the verbose mode of the processor: information about the processor work will be displayed.
Referenced by otawa::Application::run(), and otawa::Manager::setVerbosity().