22 #ifndef OTAWA_UTIL_FLOW_FACT_LOADER_H
23 #define OTAWA_UTIL_FLOW_FACT_LOADER_H
25 #include <elm/string.h>
26 #include <elm/utility.h>
28 #include <elm/system/Path.h>
32 #include <elm/genstruct/Vector.h>
34 #include <elm/types.h>
38 namespace otawa {
class FlowFactLoader; }
39 namespace elm {
namespace xom {
class Element;
class Node; } }
46 using namespace elm::genstruct;
64 Address addressOf(
const string& label);
66 void onError(
const string& message);
67 void onWarning(
const string& message);
70 virtual void onLibrary(
void);
82 virtual void onIgnoreEntry(
string name);
84 virtual void onUnknownLoop(
Address addr);
85 virtual void onUnknownMultiBranch(
Address control);
86 virtual void onUnknownMultiCall(
Address control);
93 virtual void processWorkSpace(
WorkSpace *ws);
94 virtual void configure (
const PropList &props);
166 #endif // OTAWA_UTIL_FLOW_FACT_READER_H
Identifier< int > MIN_ITERATION
Put on the first instruction of a loop, it gives the minimal number of iterations.
Identifier< bool > IGNORE_SEQ
Put on a control instruction to prevent to pass in sequence.
bool lines_available
Definition: FlowFactLoader.h:104
Identifier< int > TOTAL_ITERATION
Put on the first instruction of a loop, it gives the total number of iterations during the whole exec...
WorkSpace * _fw
Definition: FlowFactLoader.h:98
Feature< FlowFactLoader > FLOW_FACTS_FEATURE
This feature ensures that the flow facts has been loaded.
Definition: ContextualProperty.h:105
genstruct::Vector< xom::Element * > nodes
Definition: FlowFactLoader.h:101
Class to declare simple a processor.
Definition: Registration.h:213
Identifier< bool > FLOW_FACTS_MANDATORY
In configuration of the FlowFactLoader, makes it fail if no flow fact fail is available.
Identifier< bool > IGNORE_CONTROL
Put on a control instruction to prevent it to be interpreted as is.
WorkSpace * workSpace(void) const
Definition: FlowFactLoader.h:62
bool mandatory
Definition: FlowFactLoader.h:103
elm::io::IntFormat address(Address addr)
Build a format to display addresses.
Definition: base.cpp:213
Identifier< Address > CALL_TARGET
Put on instruction that may call to several targets or whose target computation cannot computed...
Identifier< Address > BRANCH_TARGET
Put on instruction that may branch to several targets or whose target computation cannot computed...
int util_fft_parse(otawa::FlowFactLoader *loader)
Identifier< bool > INLINING_POLICY
Put on the first instruction of a function to set default inlining behavior during its virtualization...
The processor class is implemented by all code processor.
Definition: Processor.h:49
Identifier< bool > NO_INLINE
Put on the first instruction of a function to indicate whether it should be inlined or not during vir...
Identifier< bool > IS_RETURN
Put on a control flow instruction, this shows that this instruction is equivalent to a function retur...
bool checksummed
Definition: FlowFactLoader.h:99
dfa::State * state
Definition: FlowFactLoader.h:105
static p::declare reg
Definition: FlowFactLoader.h:58
Feature< FlowFactLoader > MKFF_PRESERVATION_FEATURE
This feature ensures that preservation information used by mkff is put on instruction.
Identifier< Pair< Address, Address > > ACCESS_RANGE
Put on a memory access instruction, provides a range of possible accesses.
Identifier< bool > PRESERVED
Put on instruction that must preserved from the mkff special flow-fact detection. ...
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
bool lib
Definition: FlowFactLoader.h:106
Utility class representing an area in the memory defined by a base address and a size.
Definition: base.h:113
inst load(int d, int a, int t)
Definition: inst.h:153
The representation of an address in OTAWA.
Definition: base.h:54
Represents a value of the data state.
Definition: State.h:86
Identifier< xom::Element * > FLOW_FACTS_NODES
This property may be used in the configuration of a code processor to directly pass an xml element co...
genstruct::Vector< Path > paths
Definition: FlowFactLoader.h:100
dtd::RefAttr< BasicBlock * > target("target", dtd::STRICT|dtd::REQUIRED)
Identifier< bool > NO_CALL
Put on the first instruction of a function that must be no called.
Identifier< Path > FLOW_FACTS_PATH
This property may be used in the configuration of a code processor to pass the path of an flow fact f...
This class represents identifier with a typed associated value.
Definition: Identifier.h:51
cstring name
Definition: odisasm.cpp:107
Identifier< int > MAX_ITERATION
Put on the first instruction of a loop, it gives the maximum number of iteration of this loop...
void util_fft_error(otawa::FlowFactLoader *loader, const char *msg)
Definition: util_fft_parser.cpp:2056
This a list of properties.
Definition: PropList.h:63
Identifier< bool > IGNORE_ENTRY
Put on function symbol that must be ignored as function entry.
This class is used for returning exceptions from the processors.
Definition: ProcessorException.h:17
This class is an abstract class to monitor the load of flow facts.
Definition: FlowFactLoader.h:54
const Type & type(void)
Definition: type.h:163
This class describes the type of the data in the program.
Definition: type.h:39
Path current
Definition: FlowFactLoader.h:102
A feature is a set of facilities, usually provided using properties, available on a framework...
Definition: Feature.h:46
Identifier< bool > NO_RETURN
This annotation is put on the first instruction of functions that does not never return.