Object function to linearize canonicalized tree::Tree code.
More...
#include <traces.hh>
Public Member Functions |
| Traces (bool trace_p=false) |
tree::rStm | operator() (const tree::rStm &tree) |
| Linearize a canonicalized LIR fragment.
|
Detailed Description
Object function to linearize canonicalized tree::Tree code.
Member Typedef Documentation
Constructor & Destructor Documentation
canon::Traces::Traces |
( |
bool |
trace_p = false | ) |
|
Member Function Documentation
Split a low level tree into BasicBlocks.
- Parameters
-
tree | the tree to split, a function's body |
entry_label | the entry label of this function's body |
epilogue_label | the label to branch to at the end of the function. |
Referenced by operator()().
Sewing all the basic blocks into a single trace. Empties blocks.
Referenced by operator()().
tree::rStm canon::Traces::operator() |
( |
const tree::rStm & |
tree | ) |
|
Remove the useless jumps from trace.
If the destination of a jump is one of the labels that follows, then it is useless. Don't bother removing Labels: that requires checking they're not used elsewhere, and anyway Labels cost nothing.
Referenced by operator()().
bool canon::Traces::useless_jump_p |
( |
tree::tree_list_type::iterator |
begin, |
|
|
tree::tree_list_type::iterator |
end |
|
) |
| |
|
private |
Is the destination of the jump (pointed to by begin) one of the next labels?
Member Data Documentation
bool canon::Traces::trace_p_ |
|
private |
The documentation for this class was generated from the following files: