mjplusplus  v0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
firm::GraphHandler Class Referenceabstract

#include <GraphHandler.hpp>

Inheritance diagram for firm::GraphHandler:
firm::AddressModeOptimizer firm::BasicInliner firm::BitFiddlingOptimizer firm::CommonSubexpressionEliminator firm::ConstantFolder firm::ControlFlowOptimizer firm::ConvHandler firm::JumpChainOptimizer firm::LoadStoreOptimizer firm::LocalOptimizer

Public Member Functions

 GraphHandler (ir_graph *irg)
 
virtual void handle (Node node)=0
 
virtual void cleanUp (Node node)=0
 
void replaceNode (Node oldNode, Node newNode, bool keepTarval=false)
 
bool graphChanged () const
 
void processChildren (Node node, std::function< void(Node leftChild, Node rightChild)> fun)
 
bool tarvalIsZero (Tarval tarval)
 
shptr< std::set< ir_node * > > getNewNodes () const
 

Protected Member Functions

void markOutNodesAsNew (ir_node *node)
 

Protected Attributes

ir_graph * irg
 
shptr< std::set< ir_node * > > newNodes
 
bool changed
 

Constructor & Destructor Documentation

firm::GraphHandler::GraphHandler ( ir_graph *  irg)

Member Function Documentation

virtual void firm::GraphHandler::cleanUp ( Node  node)
pure virtual
shptr< std::set< ir_node * > > firm::GraphHandler::getNewNodes ( ) const
bool firm::GraphHandler::graphChanged ( ) const
virtual void firm::GraphHandler::handle ( Node  node)
pure virtual
void firm::GraphHandler::markOutNodesAsNew ( ir_node *  node)
protected

add all successors to the worklist again

void firm::GraphHandler::processChildren ( Node  node,
std::function< void(Node leftChild, Node rightChild)>  fun 
)
void firm::GraphHandler::replaceNode ( Node  oldNode,
Node  newNode,
bool  keepTarval = false 
)
bool firm::GraphHandler::tarvalIsZero ( Tarval  tarval)

Member Data Documentation

bool firm::GraphHandler::changed
protected
ir_graph* firm::GraphHandler::irg
protected
shptr<std::set<ir_node*> > firm::GraphHandler::newNodes
protected

The documentation for this class was generated from the following files: