My Project
Public Types | Public Member Functions | Public Attributes | List of all members
BlockInfoBuilder Struct Reference

Builds and holds block information during the construction phase. More...

Collaboration diagram for BlockInfoBuilder:
Collaboration graph
[legend]

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

Blockblock
 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...
 

Detailed Description

Builds and holds block information during the construction phase.

Member Typedef Documentation

◆ ValueSetT

Constructor & Destructor Documentation

◆ BlockInfoBuilder() [1/2]

BlockInfoBuilder::BlockInfoBuilder ( )
inline

Constructs an empty block builder.

◆ BlockInfoBuilder() [2/2]

BlockInfoBuilder::BlockInfoBuilder ( Block block)
inline

Fills the block builder with initial liveness information.

Member Function Documentation

◆ updateLiveIn()

bool BlockInfoBuilder::updateLiveIn ( )
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.

◆ updateLiveOut()

template<typename SourceT >
void BlockInfoBuilder::updateLiveOut ( SourceT &  source)
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.

Member Data Documentation

◆ block

Block* BlockInfoBuilder::block

The current block.

◆ defValues

ValueSetT BlockInfoBuilder::defValues

The set of all defined values.

◆ inValues

ValueSetT BlockInfoBuilder::inValues

The set of all live in values.

◆ outValues

ValueSetT BlockInfoBuilder::outValues

The set of all live out values.

◆ useValues

ValueSetT BlockInfoBuilder::useValues

The set of all used values.


The documentation for this struct was generated from the following file: