GCC Middle and Back End API Reference
complex_propagate Class Reference
Inheritance diagram for complex_propagate:
Collaboration diagram for complex_propagate:

Public Member Functions

void ssa_propagate (void)

Private Member Functions

enum ssa_prop_result visit_stmt (gimple *, edge *, tree *) final override
enum ssa_prop_result visit_phi (gphi *) final override
void simulate_stmt (gimple *stmt)
void simulate_block (basic_block)

Member Function Documentation

◆ simulate_block()

void ssa_propagation_engine::simulate_block ( basic_block block)
privateinherited
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 )
inherited
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()

◆ visit_stmt()

enum ssa_prop_result complex_propagate::visit_stmt ( gimple * stmt,
edge * taken_edge_p,
tree * result_p )
finaloverrideprivatevirtual

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