OTAWA
2.0
Framework to perform machine analysis and compute WCET.
|
Classes | |
class | DefaultFixPoint |
class | DefaultListener |
class | FirstUnrollingFixPoint |
class | HalfAbsInt |
class | UnrollingListener |
class | WideningFixPoint |
class | WideningListener |
Typedefs | |
typedef enum otawa::dfa::hai::hai_context_t | hai_context_t |
Enumerations | |
enum | hai_context_t { CTX_LOOP = 0, CTX_FUNC = 1 } |
Functions | |
Identifier< bool > | FIRST_ITER ("otawa::util::first_iter", true) |
This property is attached for the loop header, and is true if the first iteration of the associated loop is not done yet. More... | |
Identifier< bool > | FIXED ("otawa::util::fixed", false) |
This property is attached to the loop headers, and is true if the FixPoint for the associated loop has been reached. More... | |
Identifier< Block * > | HAI_BYPASS_SOURCE ("otawa::util::HAI_BYPASS_SOURCE", 0) |
This property enables the user to create a virtual "bypass" edge from the source block to the target block. More... | |
Identifier< Block * > | HAI_BYPASS_TARGET ("otawa::util::HAI_BYPASS_TARGET", 0) |
Identifier< bool > | HAI_DONT_ENTER ("otawa::util::hai_dont_enter", false) |
This property, when set to TRUE on a BasicBlock or a CFG, prevents HalfAbsInt from following edges to this BasicBlock or CFG. More... | |
Identifier< bool > | HAI_INFINITE_LOOP ("otawa::util::HAI_INFINITE_LOOP", false) |
This property indicates a block is the header of an infinite loop. More... | |
Variables | |
Identifier< bool > | FIRST_ITER |
This property is attached for the loop header, and is true if the first iteration of the associated loop is not done yet. More... | |
Identifier< bool > | FIXED |
This property is attached to the loop headers, and is true if the FixPoint for the associated loop has been reached. More... | |
Identifier< Block * > | HAI_BYPASS_SOURCE |
This property enables the user to create a virtual "bypass" edge from the source block to the target block. More... | |
Identifier< Block * > | HAI_BYPASS_TARGET |
Identifier< bool > | HAI_DONT_ENTER |
This property, when set to TRUE on a BasicBlock or a CFG, prevents HalfAbsInt from following edges to this BasicBlock or CFG. More... | |
Identifier< bool > | HAI_INFINITE_LOOP |
This property indicates a block is the header of an infinite loop. More... | |
Identifier<bool> otawa::dfa::hai::FIRST_ITER | ( | "otawa::util::first_iter" | , |
true | |||
) |
This property is attached for the loop header, and is true if the first iteration of the associated loop is not done yet.
This is useful to determine if we can add the loop header to the worklist even if the back edges going to it are not marked yet.
Identifier<bool> otawa::dfa::hai::FIXED | ( | "otawa::util::fixed" | , |
false | |||
) |
This property is attached to the loop headers, and is true if the FixPoint for the associated loop has been reached.
Identifier<Block*> otawa::dfa::hai::HAI_BYPASS_SOURCE | ( | "otawa::util::HAI_BYPASS_SOURCE" | , |
0 | |||
) |
This property enables the user to create a virtual "bypass" edge from the source block to the target block.
Moreover, it ensures that this virtual edge is the only mean to reach target basic block from source basic block. This should be used only to bypass function calls in inlined CFGs.
Identifier<Block*> otawa::dfa::hai::HAI_BYPASS_TARGET | ( | "otawa::util::HAI_BYPASS_TARGET" | , |
0 | |||
) |
Identifier<bool> otawa::dfa::hai::HAI_DONT_ENTER | ( | "otawa::util::hai_dont_enter" | , |
false | |||
) |
This property, when set to TRUE on a BasicBlock or a CFG, prevents HalfAbsInt from following edges to this BasicBlock or CFG.
NOTE: It is deprecated to use this property to prevent HalfAbsint from entering a sub-CFG. Use HAI_BYPASS_EDGE instead.
Identifier<bool> otawa::dfa::hai::HAI_INFINITE_LOOP | ( | "otawa::util::HAI_INFINITE_LOOP" | , |
false | |||
) |
This property indicates a block is the header of an infinite loop.
Identifier<bool> otawa::dfa::hai::FIRST_ITER("otawa::util::first_iter", true) |
This property is attached for the loop header, and is true if the first iteration of the associated loop is not done yet.
This is useful to determine if we can add the loop header to the worklist even if the back edges going to it are not marked yet.
Identifier<bool> otawa::dfa::hai::FIXED("otawa::util::fixed", false) |
This property is attached to the loop headers, and is true if the FixPoint for the associated loop has been reached.
Identifier<Block*> otawa::dfa::hai::HAI_BYPASS_SOURCE("otawa::util::HAI_BYPASS_SOURCE", 0) |
This property enables the user to create a virtual "bypass" edge from the source block to the target block.
Moreover, it ensures that this virtual edge is the only mean to reach target basic block from source basic block. This should be used only to bypass function calls in inlined CFGs.
Referenced by otawa::dfa::hai::HalfAbsInt< otawa::dfa::hai::FirstUnrollingFixPoint >::addSuccessors().
Identifier<Block*> otawa::dfa::hai::HAI_BYPASS_TARGET("otawa::util::HAI_BYPASS_TARGET", 0) |
Identifier<bool> otawa::dfa::hai::HAI_DONT_ENTER("otawa::util::hai_dont_enter", false) |
This property, when set to TRUE on a BasicBlock or a CFG, prevents HalfAbsInt from following edges to this BasicBlock or CFG.
NOTE: It is deprecated to use this property to prevent HalfAbsint from entering a sub-CFG. Use HAI_BYPASS_EDGE instead.
Referenced by otawa::dfa::hai::HalfAbsInt< otawa::dfa::hai::FirstUnrollingFixPoint >::addSuccessors().
Identifier<bool> otawa::dfa::hai::HAI_INFINITE_LOOP("otawa::util::HAI_INFINITE_LOOP", false) |
This property indicates a block is the header of an infinite loop.
Referenced by otawa::dfa::hai::HalfAbsInt< otawa::dfa::hai::FirstUnrollingFixPoint >::outputProcessing(), and otawa::dfa::hai::HalfAbsInt< otawa::dfa::hai::FirstUnrollingFixPoint >::solve().