22 #ifndef OTAWA_CONTEXT_TREE_H
23 #define OTAWA_CONTEXT_TREE_H
25 #include <elm/assert.h>
26 #include <elm/genstruct/Vector.h>
64 inline CFG *
cfg(
void)
const;
158 out <<
"context_tree(" << (
void *)ct <<
")";
164 #endif // OTAWA_CONTEXT_TREE_H
Iterator for the children of a context tree.
Definition: ContextTree.h:72
void addChild(ContextTree *tree)
Add a children context tree.
Definition: util_ContextTree.cpp:179
CFG * cfg(void) const
Get the current CFG.
Definition: CFGProcessor.h:56
A loop context tree.
Definition: ContextTree.h:43
virtual void processWorkSpace(WorkSpace *fw)
Process the given framework.
Definition: util_ContextTree.cpp:317
This processor produces context tree information.
Definition: ContextTree.h:87
kind_t _kind
Definition: ContextTree.h:47
Feature< ContextTreeByCFGBuilder > CONTEXT_TREE_BY_CFG_FEATURE
Assert that a context tree has been built for each CFG involved in the current computation.
~ContextTree(void)
Free the entire tree.
Definition: util_ContextTree.cpp:138
ContextTree * enclosingFunction(void)
Find the enclosing function containing this context tree.
Definition: util_ContextTree.cpp:232
elm::genstruct::Vector< BasicBlock * > _bbs
Definition: ContextTree.h:50
elm::genstruct::Vector< ContextTree * > _children
Definition: ContextTree.h:51
ContextTreeBuilder(void)
Definition: util_ContextTree.cpp:306
bool isChildOf(const ContextTree *ct)
Test transitively if the current context tree is a child of the given one.
Definition: ContextTree.h:135
Feature< ContextTreeBuilder > CONTEXT_TREE_FEATURE
This feature asserts that a context tree of the task is available in the framework.
elm::io::Output & operator<<(elm::io::Output &out, Address addr)
Definition: base.cpp:188
Control Flow Graph representation.
Definition: CFG.h:42
void addBB(BasicBlock *bb, bool _inline)
Add the given basic block to the context tree.
Definition: util_ContextTree.cpp:149
The processor class is implemented by all code processor.
Definition: Processor.h:49
A function context tree (due to a function call).
Definition: ContextTree.h:42
kind_t kind(void) const
Get the kind of the tree node.
Definition: ContextTree.h:118
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
ContextTree * parent(void) const
Get the parent tree of the current one.
Definition: ContextTree.h:122
This is a specialization of the processor class dedicated to CFG processing.
Definition: CFGProcessor.h:35
sys::SystemOutStream & out
virtual void processCFG(WorkSpace *fw, CFG *cfg)
Definition: util_ContextTree.cpp:356
kind_t
This enumerate represents the kind of a context tree.
Definition: ContextTree.h:40
ContextTreeByCFGBuilder(void)
Definition: util_ContextTree.cpp:345
Definition: ContextTree.h:37
ContextTree(BasicBlock *bb, CFG *cfg, ContextTree *parent)
Build the context tree of a loop.
Definition: util_ContextTree.cpp:124
This class represents identifier with a typed associated value.
Definition: Identifier.h:51
CFG * cfg(void) const
Get the CFG containing this context tree.
Definition: ContextTree.h:146
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
ContextTree * _parent
Definition: ContextTree.h:53
BasicBlock * bb(void) const
Get the BB that heads this tree (enter of functions for ROOT and FUNCTION, header for LOOP)...
Definition: ContextTree.h:114
This a list of properties.
Definition: PropList.h:63
A function context tree root of the whole tree.
Definition: ContextTree.h:41
Identifier< ContextTree * > OWNER_CONTEXT_TREE
Annotations with this identifier are hooked to basic blocks and gives the owner context tree (Context...
ChildrenIterator(ContextTree *tree)
Build a new iterator.
Definition: ContextTree.h:151
Definition: ContextTree.h:78
Build a context tree for each CFG involved in the current computation.
Definition: ContextTree.h:96
Iterator(const Vector &vec)
BBIterator(ContextTree *tree)
Definition: ContextTree.h:80
CFG * _cfg
Definition: ContextTree.h:49
Identifier< ContextTree * > CONTEXT_TREE
This property identifier provides a context tree hooked to a framework.
BasicBlock * _bb
Definition: ContextTree.h:48
A feature is a set of facilities, usually provided using properties, available on a framework...
Definition: Feature.h:46