Otawa
0.10
|
#include <otawa/tsim/Delta.h>
Public Types | |
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 | |
Delta (void) | |
Build a new delta calculator. More... | |
virtual void | configure (const PropList &props) |
Configures the delta calculator. 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 Registration< Delta > | reg |
static Identifier< int > | LEVELS |
This identifier is used for forcing the depth of the Delta algorith. More... | |
static Identifier< int > | DELTA |
This identifier is used for storing the delta value of a path. More... | |
static Identifier< TreePath < BasicBlock *, BBPath * > * > | TREE |
This identifier is used for storing in a BasicBlock a TreePath storing all BBPath starting from this basic block. More... | |
static Identifier< int > | SEQ_COMPLETION |
This identifier is used for storing the time for the first instruction to fetch after all instructions from the beginning of the sequence have been fetched. More... | |
static Identifier< double > | MAX_LENGTH |
Property used to return statistics about the Delta processor about the maximal sequence length in instructions. More... | |
static Identifier< double > | MEAN_LENGTH |
Property used to return statistics about the Delta processor about the mean sequence length in instructions. More... | |
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 Member Functions | |
virtual void | setup (WorkSpace *fw) |
This method is called before an anlysis to let the processor do some initialization. More... | |
virtual void | cleanup (WorkSpace *fw) |
This method is called after the end of the processor analysis to let it do some clean up. More... | |
virtual void | processCFG (WorkSpace *fw, CFG *cfg) |
Process the given CFG. More... | |
virtual void | processWorkSpace (WorkSpace *fw) |
Process the given framework. More... | |
virtual void | cleanupCFG (WorkSpace *ws, CFG *cfg) |
This function may be overridden by a subclass to provide custom cleanup for a CFG. 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... | |
Protected Attributes | |
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 | processBBPath (WorkSpace *fw, ilp::System *system, BBPath *bbpath) |
Build the constraints for the given BB path. More... | |
Static Private Member Functions | |
static int | delta (BBPath &bbp, WorkSpace *fw) |
Calculate the delta of the given BBPath. More... | |
Private Attributes | |
int | levels |
int | completion |
bool | explicitNames |
int | max_length |
int | length_sum |
int | length_cnt |
This processor is used for computing time effects of pipeline, between basic blocks.
|
inherited |
|
inherited |
otawa::tsim::Delta::Delta | ( | void | ) |
Build a new delta calculator.
props | Configuration properties. |
|
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().
|
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 |
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 length_cnt, length_sum, max_length, MAX_LENGTH, MEAN_LENGTH, and otawa::Processor::stats.
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 in otawa::BBProcessor, and otawa::EdgeProcessor.
Referenced by otawa::CFGProcessor::doCleanUp().
|
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().
|
virtual |
Configures the delta calculator.
Properties accepted are
Delta::ID_Levels<int>
: number of delta levels
IPET::ID_Explicit<bool>
: give explicit names for the sequences
Reimplemented from otawa::CFGProcessor.
References completion, otawa::CFGProcessor::configure(), otawa::ipet::EXPLICIT, explicitNames, levels, LEVELS, and SEQ_COMPLETION.
Calculate the delta of the given BBPath.
bbp | BBPath we want to calculate the delta |
References cerr, DELTA, otawa::Identifier< T >::get(), left(), otawa::tsim::BBPath::length(), right(), otawa::tsim::BBPath::t(), and otawa::tsim::BBPath::time().
Referenced by processBBPath().
|
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().
|
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(), otawa::etime::EdgeTimeBuilder::applyFloppySplit(), otawa::etime::EdgeTimeBuilder::applyStrictSplit(), otawa::etime::EdgeTimeBuilder::applyWeightedSplit(), otawa::etime::EdgeTimeBuilder::makeSplit(), otawa::etime::EdgeTimeBuilder::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(), otawa::etime::EdgeTimeBuilder::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(), otawa::etime::EdgeTimeBuilder::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(), otawa::etime::EdgeTimeBuilder::processEdge(), otawa::VarTextDecoder::processEntry(), otawa::dcache::CATBuilder::processLBlockSet(), otawa::ACSMayBuilder::processLBlockSet(), otawa::CAT2Builder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), otawa::etime::EdgeTimeBuilder::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().
|
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().
|
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().
|
private |
Build the constraints for the given BB path.
system | ILP system to work on. |
bbpath | BB path to build constraints for. |
References otawa::ilp::Constraint::addLeft(), otawa::ilp::System::addObjectFunction(), otawa::ilp::Constraint::addRight(), delta(), explicitNames, otawa::se::GE, otawa::tsim::BBPath::getBBPath(), otawa::tsim::BBPath::getVar(), otawa::tsim::BBPath::head(), otawa::se::LE, elm::genstruct::Vector< T >::length(), otawa::tsim::BBPath::length(), length_cnt, length_sum, max_length, otawa::ilp::System::newConstraint(), otawa::tsim::BBPath::nexts(), otawa::tsim::BBPath::tail(), otawa::ipet::TIME, and otawa::tsim::BBPath::time().
Referenced by processCFG().
Implements otawa::CFGProcessor.
References otawa::cfgio::bb(), otawa::Edge::CALL, completion, otawa::sem::cont(), otawa::tsim::BBPath::countInstructions(), otawa::BasicBlock::countInstructions(), elm::genstruct::Vector< T >::get(), elm::genstruct::VectorQueue< T, class >::get(), otawa::tsim::BBPath::getBBPath(), otawa::tsim::BBPath::head(), elm::genstruct::VectorQueue< T, class >::isEmpty(), elm::genstruct::Vector< T >::length(), otawa::tsim::BBPath::length(), levels, otawa::tsim::BBPath::nexts(), processBBPath(), elm::genstruct::VectorQueue< T, class >::put(), otawa::ipet::SYSTEM, and otawa::tsim::BBPath::tail().
|
protectedvirtualinherited |
Process the given workspace.
fw | Workspace to process. |
Referenced by otawa::Processor::processWorkSpace().
|
protectedvirtualinherited |
Process the given framework.
fw | Framework to process. |
Reimplemented from otawa::Processor.
Reimplemented in otawa::GraphBBTime< G >, otawa::GraphBBTime< ParExeGraph >, otawa::ExeGraphBBTime< G >, otawa::ExeGraphBBTime< LiExeGraph >, otawa::ExeGraphBBTime< ParamExeGraph >, otawa::ipet::BasicConstraintsBuilder, otawa::DelayedBuilder, otawa::CFGSaver, and otawa::cfgio::Output.
References otawa::CFGProcessor::_cfg, otawa::CFGProcessor::cfg(), otawa::INVOLVED_CFGS, otawa::CFG::label(), otawa::Monitor::log, otawa::Monitor::LOG_CFG, otawa::Monitor::logFor(), otawa::CFGProcessor::processCFG(), otawa::PROCESSED_CFG, otawa::Processor::recordsStats(), and otawa::Processor::stats.
Referenced by otawa::cfgio::Output::processWorkSpace(), otawa::CFGSaver::processWorkSpace(), otawa::DelayedBuilder::processWorkSpace(), otawa::ipet::BasicConstraintsBuilder::processWorkSpace(), otawa::ExeGraphBBTime< G >::processWorkSpace(), and otawa::GraphBBTime< G >::processWorkSpace().
|
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. |
|
protectedvirtual |
This method is called before an anlysis to let the processor do some initialization.
ws | Processed workspace. |
Reimplemented from otawa::Processor.
References length_cnt, length_sum, and max_length.
|
inlineprotectedinherited |
Set the current workspace.
workspace | New current workspace. |
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. |
|
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(), otawa::etime::EdgeTimeBuilder::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().
|
staticinherited |
This property allows to activate collection of statistics for the work of the current processor.
Referenced by otawa::Processor::init().
|
private |
Referenced by configure(), and processCFG().
|
staticprotectedinherited |
|
static |
This identifier is used for storing the delta value of a path.
Referenced by delta().
|
private |
Referenced by configure(), and processBBPath().
|
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().
|
staticprotectedinherited |
|
staticprotectedinherited |
Referenced by otawa::Processor::init().
|
staticprotectedinherited |
Referenced by otawa::Processor::prepare().
|
staticprotectedinherited |
Referenced by otawa::Processor::init().
|
staticprotectedinherited |
|
private |
Referenced by cleanup(), processBBPath(), and setup().
|
private |
Referenced by cleanup(), processBBPath(), and setup().
|
private |
Referenced by configure(), and processCFG().
|
static |
This identifier is used for forcing the depth of the Delta algorith.
If this identifier is not set, the depth will be adjusted automatically
Referenced by configure().
|
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(), otawa::etime::EdgeTimeBuilder::applyFloppySplit(), otawa::etime::EdgeTimeBuilder::applyStrictSplit(), otawa::etime::EdgeTimeBuilder::applyWeightedSplit(), otawa::DelayedBuilder::buildBB(), otawa::CFGBuilder::buildCFG(), otawa::branch::BranchBuilder::categorize(), otawa::ipet::FlowFactLoader::cleanup(), otawa::ipet::TrivialDataCacheManager::configure(), otawa::ACSBuilder::configure(), otawa::etime::EdgeTimeBuilder::displayConfs(), otawa::ipet::ConstraintLoader::error(), otawa::etime::EdgeTimeBuilder::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(), otawa::etime::EdgeTimeBuilder::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(), otawa::etime::EdgeTimeBuilder::processEdge(), otawa::VarTextDecoder::processEntry(), otawa::dcache::CATBuilder::processLBlockSet(), otawa::ACSMayBuilder::processLBlockSet(), otawa::CAT2Builder::processLBlockSet(), otawa::dcache::ACSBuilder::processLBlockSet(), otawa::etime::EdgeTimeBuilder::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().
|
private |
Referenced by cleanup(), processBBPath(), and setup().
|
static |
|
static |
|
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().
|
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().
|
static |
This identifier is used for storing the time for the first instruction to fetch after all instructions from the beginning of the sequence have been fetched.
Referenced by configure().
|
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 |
Referenced by cleanup(), otawa::Processor::init(), otawa::Processor::process(), and otawa::CFGProcessor::processWorkSpace().
|
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().
|
static |
This identifier is used for storing in a BasicBlock a TreePath storing all BBPath starting from this basic block.
Referenced by otawa::tsim::BBPath::getBBPath().
|
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().