Otawa
0.10
|
This class may be used for loading AST from an external file using the Heptane format (see doc/ directory for more details). More...
#include <otawa/ast/ASTLoader.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 | |
ASTLoader (p::declare &r=reg) | |
Build a new AST loader. More... | |
virtual void | configure (PropList &props) |
virtual void | processWorkSpace (WorkSpace *ws) |
Process the given framework. More... | |
elm::String | name (void) const |
elm::Version | version (void) const |
virtual void | configure (const PropList &props) |
This method may be called for configuring a processor thanks to information passed in the property list. More... | |
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 Member Functions | |
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 | setup (WorkSpace *ws) |
This method is called before an anlysis to let the processor do some initialization. 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 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 | |
friend | int::ast_parse (ASTLoader *loader) |
friend | void::ast_error (ASTLoader *loader, const char *msg) |
void | onError (const char *fmt,...) |
AST * | makeBlock (elm::CString entry, elm::CString exit) |
Build a block or a sequence of calls and block from the recorded calls and the entry and exit of the block. More... | |
address_t | findLabel (elm::String raw_label) |
Resolve an Heptane label to an address. More... | |
Private Attributes | |
elm::String | path |
elm::genstruct::Vector< String > | calls |
WorkSpace * | ws |
File * | file |
This class may be used for loading AST from an external file using the Heptane format (see doc/ directory for more details).
The file containing the AST description may be passed directly using ID_ASTFile configuration identifier or is built from executable path by appending ".ast" extension.
|
inherited |
|
inherited |
otawa::ast::ASTLoader::ASTLoader | ( | p::declare & | r = reg | ) |
Build a new AST loader.
|
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().
|
protectedvirtualinherited |
This method is called after the end of the processor analysis to let it do some clean up.
ws | Workspace to work on. |
Reimplemented in otawa::AccessedAddressFromStack, otawa::Virtualizer, otawa::tsim::Delta, otawa::CFGSaver, otawa::DelayedBuilder, otawa::etime::EdgeTimeBuilder, otawa::StackAnalysis, otawa::LBlockBuilder, otawa::ccg::LBlockBuilder, otawa::SubCFGBuilder, otawa::dcache::CLPBlockBuilder, otawa::ipet::VarAssignment, otawa::BBRatioDisplayer, otawa::branch::CondNumber, otawa::tsim::BBTimeSimulator, otawa::LoopUnroller, otawa::CFGChecker, otawa::dcache::CATBuilder, otawa::ilp::Output, otawa::CFGCollector, otawa::ipet::FlowFactLoader, otawa::ipet::TrivialInstCacheManager, and otawa::ipet::WCETCountRecorder.
Referenced by otawa::Processor::process().
|
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 |
References otawa::ast::PATH, and path.
|
virtualinherited |
This method may be called for configuring a processor thanks to information passed in the property list.
props | Configuration information. |
Reimplemented in otawa::GraphBBTime< G >, otawa::GraphBBTime< ParExeGraph >, otawa::AccessedAddressFromStack, otawa::dcache::ACSBuilder, otawa::dcache::ACSMayBuilder, otawa::FlowFactLoader, otawa::script::Script, otawa::tsim::Delta, otawa::ipet::ConstraintLoader, otawa::EdgeACSBuilder, otawa::bpred::BPredProcessor, otawa::display::ILPSystemDisplayer, otawa::display::CFGOutput, otawa::ccg::ConstraintBuilder, otawa::Virtualizer, otawa::ipet::VarAssignment, otawa::EdgeCAT2Builder, otawa::ipet::BasicConstraintsBuilder, otawa::etime::StandardEventBuilder, otawa::dcache::BlockBuilder, otawa::ipet::ILPSystemGetter, otawa::CAT2Builder, otawa::cat::CATConstraintBuilder, otawa::clp::Analysis, otawa::branch::OnlyConsBuilder, otawa::ACSBuilder, otawa::BBRatioDisplayer, otawa::LinkedBlocksDetector, otawa::SubCFGBuilder, otawa::CFGProcessor, otawa::StackAnalysis, otawa::ACSMayBuilder, otawa::etime::EdgeTimeBuilder, otawa::CFGBuilder, otawa::dcache::CatConstraintBuilder, otawa::StackAnalysis, otawa::ipet::FlowFactConstraintBuilder, otawa::CFGSaver, otawa::CFGChecker, otawa::dcache::CATBuilder, otawa::ipet::TrivialBBTime, otawa::EdgeCAT2ConstraintBuilder, otawa::CFGCollector, otawa::CAT2OnlyConstraintBuilder, otawa::ilp::Output, otawa::CFGNormalizer, otawa::ipet::CachePenaltiesObjectFunctionBuilder, and otawa::TextDecoder.
References otawa::Processor::init().
Referenced by otawa::TextDecoder::configure(), otawa::ilp::Output::configure(), otawa::CAT2OnlyConstraintBuilder::configure(), otawa::CFGCollector::configure(), otawa::EdgeCAT2ConstraintBuilder::configure(), otawa::dcache::CATBuilder::configure(), otawa::StackAnalysis::configure(), otawa::ets::TrivialAstBlockTime::configure(), otawa::CFGBuilder::configure(), otawa::dcache::CatConstraintBuilder::configure(), otawa::ACSMayBuilder::configure(), otawa::SubCFGBuilder::configure(), otawa::CFGProcessor::configure(), otawa::LinkedBlocksDetector::configure(), otawa::ACSBuilder::configure(), otawa::cat::CATConstraintBuilder::configure(), otawa::clp::Analysis::configure(), otawa::ipet::ILPSystemGetter::configure(), otawa::DynProcessor::configure(), otawa::ccg::ConstraintBuilder::configure(), otawa::Virtualizer::configure(), otawa::display::ILPSystemDisplayer::configure(), otawa::EdgeACSBuilder::configure(), otawa::script::Script::configure(), otawa::FlowFactLoader::configure(), otawa::dcache::ACSMayBuilder::configure(), otawa::dcache::ACSBuilder::configure(), and otawa::Processor::process().
|
private |
Resolve an Heptane label to an address.
raw_label | Heptane label to resolve. |
References _, file, otawa::File::findLabel(), elm::String::length(), otawa::WorkSpace::process(), otawa::Process::program(), elm::String::substring(), and ws.
Referenced by makeBlock().
|
private |
|
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().
|
private |
Build a block or a sequence of calls and block from the recorded calls and the entry and exit of the block.
entry | Entry label. |
exit | Exit label. |
References _, otawa::ProgItem::address(), calls, elm::genstruct::Vector< T >::clear(), otawa::WorkSpace::findInstAt(), findLabel(), otawa::ast::ASTInfo::getFunction(), otawa::ast::ASTInfo::getInfo(), elm::genstruct::Vector< T >::length(), elm::CString::length(), otawa::Inst::nextInst(), otawa::Inst::prevInst(), otawa::cfgio::target(), and ws.
Referenced by yyparse().
|
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().
|
private |
References otawa::Monitor::out.
Referenced by ast_error(), and processWorkSpace().
|
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().
|
protectedvirtualinherited |
Process the given workspace.
fw | Workspace to process. |
Referenced by otawa::Processor::processWorkSpace().
|
virtual |
Process the given framework.
fw | Framework to process. |
Reimplemented from otawa::Processor.
References ast_in, ast_parse(), file, elm::MessageException::message(), otawa::File::name(), onError(), path, otawa::WorkSpace::process(), otawa::Process::program(), elm::String::toCString(), elm::StringBuffer::toString(), and ws.
|
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. |
|
protectedvirtualinherited |
This method is called before an anlysis to let the processor do some initialization.
ws | Processed workspace. |
Reimplemented in otawa::AccessedAddressFromStack, otawa::FlowFactLoader, otawa::clp::Analysis, otawa::display::ILPSystemDisplayer, otawa::tsim::Delta, otawa::dcache::BlockBuilder, otawa::EdgeCAT2Builder, otawa::etime::StandardEventBuilder, otawa::LBlockBuilder, otawa::ccg::LBlockBuilder, otawa::dcache::CLPBlockBuilder, otawa::etime::EdgeTimeBuilder, otawa::ipet::FlowFactConstraintBuilder, otawa::ipet::VarAssignment, otawa::BBRatioDisplayer, otawa::branch::CondNumber, otawa::CAT2Builder, otawa::DelayedBuilder, otawa::tsim::BBTimeSimulator, otawa::CFGSaver, otawa::CFGChecker, otawa::dcache::WCETFunctionBuilder, otawa::FixedTextDecoder, otawa::EdgeCAT2ConstraintBuilder, otawa::ilp::Output, otawa::ipet::FlowFactLoader, otawa::ipet::TrivialInstCacheManager, and otawa::ipet::WCETCountRecorder.
Referenced by otawa::Processor::process().
|
inlineprotectedinherited |
Set the current workspace.
workspace | New current 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 |
|
private |
|
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().
|
private |
Referenced by makeBlock(), and yyparse().
|
staticinherited |
This property allows to activate collection of statistics for the work of the current processor.
Referenced by otawa::Processor::init().
|
staticprotectedinherited |
|
private |
Referenced by findLabel(), processWorkSpace(), and yyparse().
|
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 |
|
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().
|
inherited |
Provide a stream to perform output for the user.
Referenced by otawa::DelayedBuilder::buildEdges(), otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::Processor::init(), 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 ast_error(), configure(), and processWorkSpace().
|
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().
|
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 |
|
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().
|
private |
Referenced by findLabel(), makeBlock(), processWorkSpace(), and yyparse().