GCC Middle and Back End API Reference
ssa_propagation_engine Class Referenceabstract

#include <tree-ssa-propagate.h>

Inheritance diagram for ssa_propagation_engine:

Public Member Functions

virtual ~ssa_propagation_engine (void)
 
virtual enum ssa_prop_result visit_stmt (gimple *, edge *, tree *)=0
 
virtual enum ssa_prop_result visit_phi (gphi *)=0
 
void ssa_propagate (void)
 

Private Member Functions

void simulate_stmt (gimple *stmt)
 
void simulate_block (basic_block)
 

Detailed Description

Public interface into the SSA propagation engine.  Clients should inherit
from this class and provide their own visitors.   

Constructor & Destructor Documentation

◆ ~ssa_propagation_engine()

virtual ssa_propagation_engine::~ssa_propagation_engine ( void )
inlinevirtual

Member Function Documentation

◆ simulate_block()

void ssa_propagation_engine::simulate_block ( basic_block block)
private
Simulate the execution of BLOCK.  Evaluate the statement associated
with each variable reference inside the block.   

References add_control_edge(), BB_VISITED, cfun, dump_file, dump_flags, EXIT_BLOCK_PTR_FOR_FN, basic_block_def::flags, FOR_EACH_EDGE, gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_start_phis(), gsi_stmt(), basic_block_def::index, NULL, simulate_stmt(), basic_block_def::succs, and TDF_DETAILS.

Referenced by ssa_propagate().

◆ simulate_stmt()

◆ ssa_propagate()

void ssa_propagation_engine::ssa_propagate ( void )
Entry point to the propagation engine.

The VISIT_STMT virtual function is called for every statement
visited and the VISIT_PHI virtual function is called for every PHI
node visited.   

References add_control_edge(), BASIC_BLOCK_FOR_FN, bb_to_cfg_order, bitmap_clear_bit(), bitmap_empty_p(), bitmap_first_set_bit(), cfg_blocks, cfg_order_to_bb, cfun, curr_order, dump_file, dump_flags, ENTRY_BLOCK_PTR_FOR_FN, FOR_EACH_EDGE, gimple_bb(), basic_block_def::index, NULL, print_gimple_stmt(), simulate_block(), simulate_stmt(), ssa_edge_worklist, ssa_prop_fini(), ssa_prop_init(), TDF_DETAILS, and uid_to_stmt.

Referenced by do_ssa_ccp(), execute_copy_prop(), and tree_lower_complex().

◆ visit_phi()

virtual enum ssa_prop_result ssa_propagation_engine::visit_phi ( gphi * )
pure virtual

Implemented in ccp_propagate, complex_propagate, and copy_prop.

Referenced by simulate_stmt().

◆ visit_stmt()

virtual enum ssa_prop_result ssa_propagation_engine::visit_stmt ( gimple * ,
edge * ,
tree *  )
pure virtual

Implemented in ccp_propagate, complex_propagate, and copy_prop.

Referenced by simulate_stmt().


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