My Project
|
Builds and holds block information during the construction phase. More...
Public Types | |
using | ValueSetT = Liveness::ValueSetT |
Public Member Functions | |
BlockInfoBuilder () | |
Constructs an empty block builder. More... | |
BlockInfoBuilder (Block *block) | |
Fills the block builder with initial liveness information. More... | |
bool | updateLiveIn () |
template<typename SourceT > | |
void | updateLiveOut (SourceT &source) |
Public Attributes | |
Block * | block |
The current block. More... | |
ValueSetT | inValues |
The set of all live in values. More... | |
ValueSetT | outValues |
The set of all live out values. More... | |
ValueSetT | defValues |
The set of all defined values. More... | |
ValueSetT | useValues |
The set of all used values. More... | |
Builds and holds block information during the construction phase.
|
inline |
Constructs an empty block builder.
|
inline |
Fills the block builder with initial liveness information.
|
inline |
Updates live-in information of the current block. To do so it uses the default liveness-computation formula: newIn = use union out \ def. The methods returns true, if the set has changed (newIn != in), false otherwise.
|
inline |
Updates live-out information of the current block. It iterates over all successors and unifies their live-in values with the current live-out values.
Block* BlockInfoBuilder::block |
The current block.
ValueSetT BlockInfoBuilder::defValues |
The set of all defined values.
ValueSetT BlockInfoBuilder::inValues |
The set of all live in values.
ValueSetT BlockInfoBuilder::outValues |
The set of all live out values.
ValueSetT BlockInfoBuilder::useValues |
The set of all used values.