GCC Middle and Back End API Reference
tree-pass.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pass_data
class  opt_pass
class  gimple_opt_pass
class  rtl_opt_pass
class  ipa_opt_pass_d
class  simple_ipa_opt_pass
struct  register_pass_info

Namespaces

namespace  gcc

Enumerations

enum  opt_pass_type { GIMPLE_PASS, RTL_PASS, SIMPLE_IPA_PASS, IPA_PASS }
enum  pass_positioning_ops { PASS_POS_INSERT_AFTER, PASS_POS_INSERT_BEFORE, PASS_POS_REPLACE }

Functions

gimple_opt_passmake_pass_mudflap_1 (gcc::context *ctxt)
gimple_opt_passmake_pass_mudflap_2 (gcc::context *ctxt)
gimple_opt_passmake_pass_asan (gcc::context *ctxt)
gimple_opt_passmake_pass_asan_O0 (gcc::context *ctxt)
gimple_opt_passmake_pass_tsan (gcc::context *ctxt)
gimple_opt_passmake_pass_tsan_O0 (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_cf (gcc::context *ctxt)
gimple_opt_passmake_pass_refactor_eh (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_eh (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_eh_dispatch (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_resx (gcc::context *ctxt)
gimple_opt_passmake_pass_build_cfg (gcc::context *ctxt)
gimple_opt_passmake_pass_early_tree_profile (gcc::context *ctxt)
gimple_opt_passmake_pass_cleanup_eh (gcc::context *ctxt)
gimple_opt_passmake_pass_sra (gcc::context *ctxt)
gimple_opt_passmake_pass_sra_early (gcc::context *ctxt)
gimple_opt_passmake_pass_early_ipa_sra (gcc::context *ctxt)
gimple_opt_passmake_pass_tail_recursion (gcc::context *ctxt)
gimple_opt_passmake_pass_tail_calls (gcc::context *ctxt)
gimple_opt_passmake_pass_tree_loop (gcc::context *ctxt)
gimple_opt_passmake_pass_tree_loop_init (gcc::context *ctxt)
gimple_opt_passmake_pass_lim (gcc::context *ctxt)
gimple_opt_passmake_pass_tree_unswitch (gcc::context *ctxt)
gimple_opt_passmake_pass_predcom (gcc::context *ctxt)
gimple_opt_passmake_pass_iv_canon (gcc::context *ctxt)
gimple_opt_passmake_pass_scev_cprop (gcc::context *ctxt)
gimple_opt_passmake_pass_empty_loop (gcc::context *ctxt)
gimple_opt_passmake_pass_record_bounds (gcc::context *ctxt)
gimple_opt_passmake_pass_graphite (gcc::context *ctxt)
gimple_opt_passmake_pass_graphite_transforms (gcc::context *ctxt)
gimple_opt_passmake_pass_if_conversion (gcc::context *ctxt)
gimple_opt_passmake_pass_loop_distribution (gcc::context *ctxt)
gimple_opt_passmake_pass_vectorize (gcc::context *ctxt)
gimple_opt_passmake_pass_slp_vectorize (gcc::context *ctxt)
gimple_opt_passmake_pass_complete_unroll (gcc::context *ctxt)
gimple_opt_passmake_pass_complete_unrolli (gcc::context *ctxt)
gimple_opt_passmake_pass_parallelize_loops (gcc::context *ctxt)
gimple_opt_passmake_pass_loop_prefetch (gcc::context *ctxt)
gimple_opt_passmake_pass_iv_optimize (gcc::context *ctxt)
gimple_opt_passmake_pass_tree_loop_done (gcc::context *ctxt)
gimple_opt_passmake_pass_ch (gcc::context *ctxt)
gimple_opt_passmake_pass_ccp (gcc::context *ctxt)
gimple_opt_passmake_pass_phi_only_cprop (gcc::context *ctxt)
gimple_opt_passmake_pass_build_ssa (gcc::context *ctxt)
gimple_opt_passmake_pass_build_alias (gcc::context *ctxt)
gimple_opt_passmake_pass_build_ealias (gcc::context *ctxt)
gimple_opt_passmake_pass_dominator (gcc::context *ctxt)
gimple_opt_passmake_pass_dce (gcc::context *ctxt)
gimple_opt_passmake_pass_dce_loop (gcc::context *ctxt)
gimple_opt_passmake_pass_cd_dce (gcc::context *ctxt)
gimple_opt_passmake_pass_call_cdce (gcc::context *ctxt)
gimple_opt_passmake_pass_merge_phi (gcc::context *ctxt)
gimple_opt_passmake_pass_split_crit_edges (gcc::context *ctxt)
gimple_opt_passmake_pass_pre (gcc::context *ctxt)
unsigned int tail_merge_optimize (unsigned int)
gimple_opt_passmake_pass_profile (gcc::context *ctxt)
gimple_opt_passmake_pass_strip_predict_hints (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_complex_O0 (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_complex (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_vector (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_vector_ssa (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_omp (gcc::context *ctxt)
gimple_opt_passmake_pass_diagnose_omp_blocks (gcc::context *ctxt)
gimple_opt_passmake_pass_expand_omp (gcc::context *ctxt)
gimple_opt_passmake_pass_expand_omp_ssa (gcc::context *ctxt)
gimple_opt_passmake_pass_object_sizes (gcc::context *ctxt)
gimple_opt_passmake_pass_strlen (gcc::context *ctxt)
gimple_opt_passmake_pass_fold_builtins (gcc::context *ctxt)
gimple_opt_passmake_pass_stdarg (gcc::context *ctxt)
gimple_opt_passmake_pass_early_warn_uninitialized (gcc::context *ctxt)
gimple_opt_passmake_pass_late_warn_uninitialized (gcc::context *ctxt)
gimple_opt_passmake_pass_cse_reciprocals (gcc::context *ctxt)
gimple_opt_passmake_pass_cse_sincos (gcc::context *ctxt)
gimple_opt_passmake_pass_optimize_bswap (gcc::context *ctxt)
gimple_opt_passmake_pass_optimize_widening_mul (gcc::context *ctxt)
gimple_opt_passmake_pass_warn_function_return (gcc::context *ctxt)
gimple_opt_passmake_pass_warn_function_noreturn (gcc::context *ctxt)
gimple_opt_passmake_pass_cselim (gcc::context *ctxt)
gimple_opt_passmake_pass_phiopt (gcc::context *ctxt)
gimple_opt_passmake_pass_forwprop (gcc::context *ctxt)
gimple_opt_passmake_pass_phiprop (gcc::context *ctxt)
gimple_opt_passmake_pass_tree_ifcombine (gcc::context *ctxt)
gimple_opt_passmake_pass_dse (gcc::context *ctxt)
gimple_opt_passmake_pass_nrv (gcc::context *ctxt)
gimple_opt_passmake_pass_rename_ssa_copies (gcc::context *ctxt)
gimple_opt_passmake_pass_sink_code (gcc::context *ctxt)
gimple_opt_passmake_pass_fre (gcc::context *ctxt)
gimple_opt_passmake_pass_check_data_deps (gcc::context *ctxt)
gimple_opt_passmake_pass_copy_prop (gcc::context *ctxt)
gimple_opt_passmake_pass_vrp (gcc::context *ctxt)
gimple_opt_passmake_pass_uncprop (gcc::context *ctxt)
gimple_opt_passmake_pass_return_slot (gcc::context *ctxt)
gimple_opt_passmake_pass_reassoc (gcc::context *ctxt)
gimple_opt_passmake_pass_rebuild_cgraph_edges (gcc::context *ctxt)
gimple_opt_passmake_pass_remove_cgraph_callee_edges (gcc::context *ctxt)
gimple_opt_passmake_pass_build_cgraph_edges (gcc::context *ctxt)
gimple_opt_passmake_pass_local_pure_const (gcc::context *ctxt)
gimple_opt_passmake_pass_tracer (gcc::context *ctxt)
gimple_opt_passmake_pass_warn_unused_result (gcc::context *ctxt)
gimple_opt_passmake_pass_diagnose_tm_blocks (gcc::context *ctxt)
gimple_opt_passmake_pass_lower_tm (gcc::context *ctxt)
gimple_opt_passmake_pass_tm_init (gcc::context *ctxt)
gimple_opt_passmake_pass_tm_mark (gcc::context *ctxt)
gimple_opt_passmake_pass_tm_memopt (gcc::context *ctxt)
gimple_opt_passmake_pass_tm_edges (gcc::context *ctxt)
gimple_opt_passmake_pass_split_functions (gcc::context *ctxt)
gimple_opt_passmake_pass_feedback_split_functions (gcc::context *ctxt)
gimple_opt_passmake_pass_strength_reduction (gcc::context *ctxt)
gimple_opt_passmake_pass_vtable_verify (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_lower_emutls (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_function_and_variable_visibility (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_tree_profile (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_early_local_passes (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_whole_program_visibility (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_lto_gimple_out (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_increase_alignment (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_inline (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_free_lang_data (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_free_inline_summary (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_cp (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_reference (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_pure_const (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_pta (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_lto_finish_out (gcc::context *ctxt)
simple_ipa_opt_passmake_pass_ipa_tm (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_profile (gcc::context *ctxt)
ipa_opt_pass_dmake_pass_ipa_cdtor_merge (gcc::context *ctxt)
gimple_opt_passmake_pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
gimple_opt_passmake_pass_init_datastructures (gcc::context *ctxt)
gimple_opt_passmake_pass_fixup_cfg (gcc::context *ctxt)
rtl_opt_passmake_pass_expand (gcc::context *ctxt)
rtl_opt_passmake_pass_instantiate_virtual_regs (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_fwprop (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_fwprop_addr (gcc::context *ctxt)
rtl_opt_passmake_pass_jump (gcc::context *ctxt)
rtl_opt_passmake_pass_jump2 (gcc::context *ctxt)
rtl_opt_passmake_pass_lower_subreg (gcc::context *ctxt)
rtl_opt_passmake_pass_cse (gcc::context *ctxt)
rtl_opt_passmake_pass_fast_rtl_dce (gcc::context *ctxt)
rtl_opt_passmake_pass_ud_rtl_dce (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_dce (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_dse1 (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_dse2 (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_dse3 (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_cprop (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_pre (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_hoist (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_store_motion (gcc::context *ctxt)
rtl_opt_passmake_pass_cse_after_global_opts (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_ifcvt (gcc::context *ctxt)
rtl_opt_passmake_pass_into_cfg_layout_mode (gcc::context *ctxt)
rtl_opt_passmake_pass_outof_cfg_layout_mode (gcc::context *ctxt)
rtl_opt_passmake_pass_loop2 (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_loop_init (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_move_loop_invariants (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_unswitch (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_unroll_and_peel_loops (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_doloop (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_loop_done (gcc::context *ctxt)
rtl_opt_passmake_pass_web (gcc::context *ctxt)
rtl_opt_passmake_pass_cse2 (gcc::context *ctxt)
rtl_opt_passmake_pass_df_initialize_opt (gcc::context *ctxt)
rtl_opt_passmake_pass_df_initialize_no_opt (gcc::context *ctxt)
rtl_opt_passmake_pass_reginfo_init (gcc::context *ctxt)
rtl_opt_passmake_pass_inc_dec (gcc::context *ctxt)
rtl_opt_passmake_pass_stack_ptr_mod (gcc::context *ctxt)
rtl_opt_passmake_pass_initialize_regs (gcc::context *ctxt)
rtl_opt_passmake_pass_combine (gcc::context *ctxt)
rtl_opt_passmake_pass_if_after_combine (gcc::context *ctxt)
rtl_opt_passmake_pass_ree (gcc::context *ctxt)
rtl_opt_passmake_pass_partition_blocks (gcc::context *ctxt)
rtl_opt_passmake_pass_match_asm_constraints (gcc::context *ctxt)
rtl_opt_passmake_pass_regmove (gcc::context *ctxt)
rtl_opt_passmake_pass_split_all_insns (gcc::context *ctxt)
rtl_opt_passmake_pass_fast_rtl_byte_dce (gcc::context *ctxt)
rtl_opt_passmake_pass_lower_subreg2 (gcc::context *ctxt)
rtl_opt_passmake_pass_mode_switching (gcc::context *ctxt)
rtl_opt_passmake_pass_sms (gcc::context *ctxt)
rtl_opt_passmake_pass_sched (gcc::context *ctxt)
rtl_opt_passmake_pass_ira (gcc::context *ctxt)
rtl_opt_passmake_pass_reload (gcc::context *ctxt)
rtl_opt_passmake_pass_clean_state (gcc::context *ctxt)
rtl_opt_passmake_pass_branch_prob (gcc::context *ctxt)
rtl_opt_passmake_pass_value_profile_transformations (gcc::context *ctxt)
rtl_opt_passmake_pass_postreload_cse (gcc::context *ctxt)
rtl_opt_passmake_pass_gcse2 (gcc::context *ctxt)
rtl_opt_passmake_pass_split_after_reload (gcc::context *ctxt)
rtl_opt_passmake_pass_branch_target_load_optimize1 (gcc::context *ctxt)
rtl_opt_passmake_pass_thread_prologue_and_epilogue (gcc::context *ctxt)
rtl_opt_passmake_pass_stack_adjustments (gcc::context *ctxt)
rtl_opt_passmake_pass_peephole2 (gcc::context *ctxt)
rtl_opt_passmake_pass_if_after_reload (gcc::context *ctxt)
rtl_opt_passmake_pass_regrename (gcc::context *ctxt)
rtl_opt_passmake_pass_cprop_hardreg (gcc::context *ctxt)
rtl_opt_passmake_pass_reorder_blocks (gcc::context *ctxt)
rtl_opt_passmake_pass_branch_target_load_optimize2 (gcc::context *ctxt)
rtl_opt_passmake_pass_leaf_regs (gcc::context *ctxt)
rtl_opt_passmake_pass_split_before_sched2 (gcc::context *ctxt)
rtl_opt_passmake_pass_compare_elim_after_reload (gcc::context *ctxt)
rtl_opt_passmake_pass_sched2 (gcc::context *ctxt)
rtl_opt_passmake_pass_stack_regs (gcc::context *ctxt)
rtl_opt_passmake_pass_stack_regs_run (gcc::context *ctxt)
rtl_opt_passmake_pass_df_finish (gcc::context *ctxt)
rtl_opt_passmake_pass_compute_alignments (gcc::context *ctxt)
rtl_opt_passmake_pass_duplicate_computed_gotos (gcc::context *ctxt)
rtl_opt_passmake_pass_variable_tracking (gcc::context *ctxt)
rtl_opt_passmake_pass_free_cfg (gcc::context *ctxt)
rtl_opt_passmake_pass_machine_reorg (gcc::context *ctxt)
rtl_opt_passmake_pass_cleanup_barriers (gcc::context *ctxt)
rtl_opt_passmake_pass_delay_slots (gcc::context *ctxt)
rtl_opt_passmake_pass_split_for_shorten_branches (gcc::context *ctxt)
rtl_opt_passmake_pass_split_before_regstack (gcc::context *ctxt)
rtl_opt_passmake_pass_convert_to_eh_region_ranges (gcc::context *ctxt)
rtl_opt_passmake_pass_shorten_branches (gcc::context *ctxt)
rtl_opt_passmake_pass_set_nothrow_function_flags (gcc::context *ctxt)
rtl_opt_passmake_pass_dwarf2_frame (gcc::context *ctxt)
rtl_opt_passmake_pass_final (gcc::context *ctxt)
rtl_opt_passmake_pass_rtl_seqabstr (gcc::context *ctxt)
gimple_opt_passmake_pass_release_ssa_names (gcc::context *ctxt)
gimple_opt_passmake_pass_early_inline (gcc::context *ctxt)
gimple_opt_passmake_pass_inline_parameters (gcc::context *ctxt)
gimple_opt_passmake_pass_update_address_taken (gcc::context *ctxt)
gimple_opt_passmake_pass_convert_switch (gcc::context *ctxt)
bool execute_one_pass (struct opt_pass *)
void execute_pass_list (struct opt_pass *)
void execute_ipa_pass_list (struct opt_pass *)
void execute_ipa_summary_passes (struct ipa_opt_pass_d *)
void execute_all_ipa_transforms (void)
void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple *)
bool pass_init_dump_file (struct opt_pass *)
void pass_fini_dump_file (struct opt_pass *)
const char * get_current_pass_name (void)
void print_current_pass (FILE *)
void debug_pass (void)
void ipa_write_summaries (void)
void ipa_write_optimization_summaries (struct lto_symtab_encoder_d *)
void ipa_read_summaries (void)
void ipa_read_optimization_summaries (void)
void register_one_dump_file (struct opt_pass *)
bool function_called_by_processed_nodes_p (void)
void register_pass (struct register_pass_info *)
void do_per_function_toporder (void(*)(void *), void *)
void disable_pass (const char *)
void enable_pass (const char *)
void dump_passes (void)

Variables

struct opt_passcurrent_pass
bool first_pass_instance

Enumeration Type Documentation

Optimization pass type.   
Enumerator:
GIMPLE_PASS 
RTL_PASS 
SIMPLE_IPA_PASS 
IPA_PASS 
Register pass info.  
Enumerator:
PASS_POS_INSERT_AFTER 
PASS_POS_INSERT_BEFORE 
PASS_POS_REPLACE 

Function Documentation

void debug_pass ( void  )
Call from the debugger to get the current pass name.   

References print_current_pass().

void disable_pass ( const char *  )
void do_per_function_toporder ( void(*)(void *)  ,
void *   
)
Declare for plugins.   
void dump_passes ( void  )
Dump all optimization passes.   

References gcc::pass_manager::dump_passes(), g, and gcc::context::get_passes().

Referenced by finalize_compilation_unit().

void enable_pass ( const char *  )
void execute_all_ipa_stmt_fixups ( struct cgraph_node ,
gimple  
)
void execute_all_ipa_transforms ( void  )
For the current function, execute all ipa transforms.  

References cfun, cgraph_get_node(), current_function_decl, execute_one_ipa_transform_pass(), and cgraph_node::ipa_transforms_to_apply.

Referenced by apply_ipa_transforms(), and expand_function().

void execute_ipa_pass_list ( struct opt_pass )
void execute_ipa_summary_passes ( struct ipa_opt_pass_d )
bool execute_one_pass ( struct opt_pass )
void execute_pass_list ( struct opt_pass )
bool function_called_by_processed_nodes_p ( void  )
Called by local passes to see if function is called by already processed nodes.
   Because we process nodes in topological order, this means that function is
   in recursive cycle or we introduced new direct calls.   

References cgraph_edge::caller, cgraph_function_with_gimple_body_p(), cgraph_get_node(), current_function_decl, symtab_node_base::decl, dump_cgraph_node(), dump_file, cgraph_node::global, cgraph_global_info::inlined_to, cgraph_edge::next_caller, cgraph_node::process, and cgraph_node::symbol.

Referenced by skip_function_for_local_pure_const().

const char* get_current_pass_name ( void  )
void ipa_read_optimization_summaries ( void  )
Read all the summaries for all_regular_ipa_passes and all_lto_gen_passes.   

References gcc::pass_manager::all_lto_gen_passes, gcc::pass_manager::all_regular_ipa_passes, g, gcc::context::get_passes(), and ipa_read_optimization_summaries_1().

void ipa_read_summaries ( void  )
Read all the summaries for all_regular_ipa_passes and all_lto_gen_passes.   

References gcc::pass_manager::all_lto_gen_passes, gcc::pass_manager::all_regular_ipa_passes, g, gcc::context::get_passes(), and ipa_read_summaries_1().

void ipa_write_optimization_summaries ( struct lto_symtab_encoder_d )
gimple_opt_pass* make_pass_asan ( gcc::context ctxt)
gimple_opt_pass* make_pass_asan_O0 ( gcc::context ctxt)
rtl_opt_pass* make_pass_branch_prob ( gcc::context ctxt)
rtl_opt_pass* make_pass_branch_target_load_optimize1 ( gcc::context ctxt)
rtl_opt_pass* make_pass_branch_target_load_optimize2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_build_alias ( gcc::context ctxt)
gimple_opt_pass* make_pass_build_cfg ( gcc::context ctxt)
gimple_opt_pass* make_pass_build_cgraph_edges ( gcc::context ctxt)
gimple_opt_pass* make_pass_build_ealias ( gcc::context ctxt)
gimple_opt_pass* make_pass_build_ssa ( gcc::context ctxt)
gimple_opt_pass* make_pass_call_cdce ( gcc::context ctxt)
gimple_opt_pass* make_pass_ccp ( gcc::context ctxt)
gimple_opt_pass* make_pass_cd_dce ( gcc::context ctxt)
gimple_opt_pass* make_pass_ch ( gcc::context ctxt)
gimple_opt_pass* make_pass_check_data_deps ( gcc::context ctxt)
rtl_opt_pass* make_pass_clean_state ( gcc::context ctxt)
rtl_opt_pass* make_pass_cleanup_barriers ( gcc::context ctxt)
gimple_opt_pass* make_pass_cleanup_cfg_post_optimizing ( gcc::context ctxt)
gimple_opt_pass* make_pass_cleanup_eh ( gcc::context ctxt)
rtl_opt_pass* make_pass_combine ( gcc::context ctxt)
rtl_opt_pass* make_pass_compare_elim_after_reload ( gcc::context ctxt)
gimple_opt_pass* make_pass_complete_unroll ( gcc::context ctxt)
gimple_opt_pass* make_pass_complete_unrolli ( gcc::context ctxt)
rtl_opt_pass* make_pass_compute_alignments ( gcc::context ctxt)
gimple_opt_pass* make_pass_convert_switch ( gcc::context ctxt)
rtl_opt_pass* make_pass_convert_to_eh_region_ranges ( gcc::context ctxt)
gimple_opt_pass* make_pass_copy_prop ( gcc::context ctxt)
rtl_opt_pass* make_pass_cprop_hardreg ( gcc::context ctxt)
rtl_opt_pass* make_pass_cse ( gcc::context ctxt)
rtl_opt_pass* make_pass_cse2 ( gcc::context ctxt)
rtl_opt_pass* make_pass_cse_after_global_opts ( gcc::context ctxt)
gimple_opt_pass* make_pass_cse_reciprocals ( gcc::context ctxt)
gimple_opt_pass* make_pass_cse_sincos ( gcc::context ctxt)
gimple_opt_pass* make_pass_cselim ( gcc::context ctxt)
gimple_opt_pass* make_pass_dce ( gcc::context ctxt)
gimple_opt_pass* make_pass_dce_loop ( gcc::context ctxt)
rtl_opt_pass* make_pass_delay_slots ( gcc::context ctxt)
rtl_opt_pass* make_pass_df_finish ( gcc::context ctxt)
rtl_opt_pass* make_pass_df_initialize_no_opt ( gcc::context ctxt)
rtl_opt_pass* make_pass_df_initialize_opt ( gcc::context ctxt)
gimple_opt_pass* make_pass_diagnose_omp_blocks ( gcc::context ctxt)
gimple_opt_pass* make_pass_diagnose_tm_blocks ( gcc::context ctxt)
gimple_opt_pass* make_pass_dominator ( gcc::context ctxt)
gimple_opt_pass* make_pass_dse ( gcc::context ctxt)
rtl_opt_pass* make_pass_duplicate_computed_gotos ( gcc::context ctxt)
rtl_opt_pass* make_pass_dwarf2_frame ( gcc::context ctxt)
gimple_opt_pass* make_pass_early_inline ( gcc::context ctxt)
gimple_opt_pass* make_pass_early_ipa_sra ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_early_local_passes ( gcc::context ctxt)
gimple_opt_pass* make_pass_early_tree_profile ( gcc::context ctxt)
gimple_opt_pass* make_pass_early_warn_uninitialized ( gcc::context ctxt)
gimple_opt_pass* make_pass_empty_loop ( gcc::context ctxt)
rtl_opt_pass* make_pass_expand ( gcc::context ctxt)
gimple_opt_pass* make_pass_expand_omp ( gcc::context ctxt)
gimple_opt_pass* make_pass_expand_omp_ssa ( gcc::context ctxt)
rtl_opt_pass* make_pass_fast_rtl_byte_dce ( gcc::context ctxt)
rtl_opt_pass* make_pass_fast_rtl_dce ( gcc::context ctxt)
gimple_opt_pass* make_pass_feedback_split_functions ( gcc::context ctxt)
rtl_opt_pass* make_pass_final ( gcc::context ctxt)
gimple_opt_pass* make_pass_fixup_cfg ( gcc::context ctxt)
gimple_opt_pass* make_pass_fold_builtins ( gcc::context ctxt)
gimple_opt_pass* make_pass_forwprop ( gcc::context ctxt)
gimple_opt_pass* make_pass_fre ( gcc::context ctxt)
rtl_opt_pass* make_pass_free_cfg ( gcc::context ctxt)
rtl_opt_pass* make_pass_gcse2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_graphite ( gcc::context ctxt)
gimple_opt_pass* make_pass_graphite_transforms ( gcc::context ctxt)
rtl_opt_pass* make_pass_if_after_combine ( gcc::context ctxt)
rtl_opt_pass* make_pass_if_after_reload ( gcc::context ctxt)
gimple_opt_pass* make_pass_if_conversion ( gcc::context ctxt)
rtl_opt_pass* make_pass_inc_dec ( gcc::context ctxt)
gimple_opt_pass* make_pass_init_datastructures ( gcc::context ctxt)
rtl_opt_pass* make_pass_initialize_regs ( gcc::context ctxt)
gimple_opt_pass* make_pass_inline_parameters ( gcc::context ctxt)
rtl_opt_pass* make_pass_instantiate_virtual_regs ( gcc::context ctxt)
rtl_opt_pass* make_pass_into_cfg_layout_mode ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_cdtor_merge ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_cp ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_free_inline_summary ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_free_lang_data ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_function_and_variable_visibility ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_increase_alignment ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_inline ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_lower_emutls ( gcc::context ctxt)
IPA Passes  
ipa_opt_pass_d* make_pass_ipa_lto_finish_out ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_lto_gimple_out ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_profile ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_pta ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_pure_const ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_reference ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_tm ( gcc::context ctxt)
simple_ipa_opt_pass* make_pass_ipa_tree_profile ( gcc::context ctxt)
ipa_opt_pass_d* make_pass_ipa_whole_program_visibility ( gcc::context ctxt)
rtl_opt_pass* make_pass_ira ( gcc::context ctxt)
gimple_opt_pass* make_pass_iv_canon ( gcc::context ctxt)
gimple_opt_pass* make_pass_iv_optimize ( gcc::context ctxt)
rtl_opt_pass* make_pass_jump ( gcc::context ctxt)
rtl_opt_pass* make_pass_jump2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_late_warn_uninitialized ( gcc::context ctxt)
rtl_opt_pass* make_pass_leaf_regs ( gcc::context ctxt)
gimple_opt_pass* make_pass_lim ( gcc::context ctxt)
gimple_opt_pass* make_pass_local_pure_const ( gcc::context ctxt)
rtl_opt_pass* make_pass_loop2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_loop_distribution ( gcc::context ctxt)
gimple_opt_pass* make_pass_loop_prefetch ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_cf ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_complex ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_complex_O0 ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_eh ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_eh_dispatch ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_omp ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_resx ( gcc::context ctxt)
rtl_opt_pass* make_pass_lower_subreg ( gcc::context ctxt)
rtl_opt_pass* make_pass_lower_subreg2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_tm ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_vector ( gcc::context ctxt)
gimple_opt_pass* make_pass_lower_vector_ssa ( gcc::context ctxt)
rtl_opt_pass* make_pass_machine_reorg ( gcc::context ctxt)
rtl_opt_pass* make_pass_match_asm_constraints ( gcc::context ctxt)
gimple_opt_pass* make_pass_merge_phi ( gcc::context ctxt)
rtl_opt_pass* make_pass_mode_switching ( gcc::context ctxt)
gimple_opt_pass* make_pass_mudflap_1 ( gcc::context ctxt)
gimple_opt_pass* make_pass_mudflap_2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_nrv ( gcc::context ctxt)
gimple_opt_pass* make_pass_object_sizes ( gcc::context ctxt)
gimple_opt_pass* make_pass_optimize_bswap ( gcc::context ctxt)
gimple_opt_pass* make_pass_optimize_widening_mul ( gcc::context ctxt)
rtl_opt_pass* make_pass_outof_cfg_layout_mode ( gcc::context ctxt)
gimple_opt_pass* make_pass_parallelize_loops ( gcc::context ctxt)
rtl_opt_pass* make_pass_partition_blocks ( gcc::context ctxt)
rtl_opt_pass* make_pass_peephole2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_phi_only_cprop ( gcc::context ctxt)
gimple_opt_pass* make_pass_phiopt ( gcc::context ctxt)
gimple_opt_pass* make_pass_phiprop ( gcc::context ctxt)
rtl_opt_pass* make_pass_postreload_cse ( gcc::context ctxt)
gimple_opt_pass* make_pass_pre ( gcc::context ctxt)
gimple_opt_pass* make_pass_predcom ( gcc::context ctxt)
gimple_opt_pass* make_pass_profile ( gcc::context ctxt)
gimple_opt_pass* make_pass_reassoc ( gcc::context ctxt)
gimple_opt_pass* make_pass_rebuild_cgraph_edges ( gcc::context ctxt)
gimple_opt_pass* make_pass_record_bounds ( gcc::context ctxt)
rtl_opt_pass* make_pass_ree ( gcc::context ctxt)
gimple_opt_pass* make_pass_refactor_eh ( gcc::context ctxt)
rtl_opt_pass* make_pass_reginfo_init ( gcc::context ctxt)
rtl_opt_pass* make_pass_regmove ( gcc::context ctxt)
rtl_opt_pass* make_pass_regrename ( gcc::context ctxt)
gimple_opt_pass* make_pass_release_ssa_names ( gcc::context ctxt)
rtl_opt_pass* make_pass_reload ( gcc::context ctxt)
gimple_opt_pass* make_pass_remove_cgraph_callee_edges ( gcc::context ctxt)
gimple_opt_pass* make_pass_rename_ssa_copies ( gcc::context ctxt)
rtl_opt_pass* make_pass_reorder_blocks ( gcc::context ctxt)
gimple_opt_pass* make_pass_return_slot ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_cprop ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_dce ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_doloop ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_dse1 ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_dse2 ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_dse3 ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_fwprop ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_fwprop_addr ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_hoist ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_ifcvt ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_loop_done ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_loop_init ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_move_loop_invariants ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_pre ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_seqabstr ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_store_motion ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_unroll_and_peel_loops ( gcc::context ctxt)
rtl_opt_pass* make_pass_rtl_unswitch ( gcc::context ctxt)
gimple_opt_pass* make_pass_scev_cprop ( gcc::context ctxt)
rtl_opt_pass* make_pass_sched ( gcc::context ctxt)
rtl_opt_pass* make_pass_sched2 ( gcc::context ctxt)
rtl_opt_pass* make_pass_set_nothrow_function_flags ( gcc::context ctxt)
rtl_opt_pass* make_pass_shorten_branches ( gcc::context ctxt)
gimple_opt_pass* make_pass_sink_code ( gcc::context ctxt)
gimple_opt_pass* make_pass_slp_vectorize ( gcc::context ctxt)
rtl_opt_pass* make_pass_sms ( gcc::context ctxt)
rtl_opt_pass* make_pass_split_after_reload ( gcc::context ctxt)
rtl_opt_pass* make_pass_split_all_insns ( gcc::context ctxt)
rtl_opt_pass* make_pass_split_before_regstack ( gcc::context ctxt)
rtl_opt_pass* make_pass_split_before_sched2 ( gcc::context ctxt)
gimple_opt_pass* make_pass_split_crit_edges ( gcc::context ctxt)
rtl_opt_pass* make_pass_split_for_shorten_branches ( gcc::context ctxt)
gimple_opt_pass* make_pass_split_functions ( gcc::context ctxt)
gimple_opt_pass* make_pass_sra ( gcc::context ctxt)
gimple_opt_pass* make_pass_sra_early ( gcc::context ctxt)
rtl_opt_pass* make_pass_stack_adjustments ( gcc::context ctxt)
rtl_opt_pass* make_pass_stack_ptr_mod ( gcc::context ctxt)
rtl_opt_pass* make_pass_stack_regs ( gcc::context ctxt)
rtl_opt_pass* make_pass_stack_regs_run ( gcc::context ctxt)
gimple_opt_pass* make_pass_stdarg ( gcc::context ctxt)
gimple_opt_pass* make_pass_strength_reduction ( gcc::context ctxt)
gimple_opt_pass* make_pass_strip_predict_hints ( gcc::context ctxt)
gimple_opt_pass* make_pass_strlen ( gcc::context ctxt)
gimple_opt_pass* make_pass_tail_calls ( gcc::context ctxt)
gimple_opt_pass* make_pass_tail_recursion ( gcc::context ctxt)
rtl_opt_pass* make_pass_thread_prologue_and_epilogue ( gcc::context ctxt)
gimple_opt_pass* make_pass_tm_edges ( gcc::context ctxt)
gimple_opt_pass* make_pass_tm_init ( gcc::context ctxt)
gimple_opt_pass* make_pass_tm_mark ( gcc::context ctxt)
gimple_opt_pass* make_pass_tm_memopt ( gcc::context ctxt)
gimple_opt_pass* make_pass_tracer ( gcc::context ctxt)
gimple_opt_pass* make_pass_tree_ifcombine ( gcc::context ctxt)
gimple_opt_pass* make_pass_tree_loop ( gcc::context ctxt)
gimple_opt_pass* make_pass_tree_loop_done ( gcc::context ctxt)
gimple_opt_pass* make_pass_tree_loop_init ( gcc::context ctxt)
gimple_opt_pass* make_pass_tree_unswitch ( gcc::context ctxt)
gimple_opt_pass* make_pass_tsan ( gcc::context ctxt)
gimple_opt_pass* make_pass_tsan_O0 ( gcc::context ctxt)
rtl_opt_pass* make_pass_ud_rtl_dce ( gcc::context ctxt)
gimple_opt_pass* make_pass_uncprop ( gcc::context ctxt)
gimple_opt_pass* make_pass_update_address_taken ( gcc::context ctxt)
rtl_opt_pass* make_pass_value_profile_transformations ( gcc::context ctxt)
rtl_opt_pass* make_pass_variable_tracking ( gcc::context ctxt)
gimple_opt_pass* make_pass_vectorize ( gcc::context ctxt)
gimple_opt_pass* make_pass_vrp ( gcc::context ctxt)
gimple_opt_pass* make_pass_vtable_verify ( gcc::context ctxt)
gimple_opt_pass* make_pass_warn_function_noreturn ( gcc::context ctxt)
gimple_opt_pass* make_pass_warn_function_return ( gcc::context ctxt)
gimple_opt_pass* make_pass_warn_unused_result ( gcc::context ctxt)
rtl_opt_pass* make_pass_web ( gcc::context ctxt)
void pass_fini_dump_file ( struct opt_pass )
bool pass_init_dump_file ( struct opt_pass )
void print_current_pass ( FILE *  )
void register_one_dump_file ( struct opt_pass )
void register_pass ( struct register_pass_info )
unsigned int tail_merge_optimize ( unsigned  int)

Referenced by do_pre().


Variable Documentation

struct opt_pass* current_pass
Current optimization pass.   
This is used for debugging.  It allows the current pass to printed
   from anywhere in compilation.
   The variable current_pass is also used for statistics and plugins.   

Referenced by connect_traces(), curr_statistics_hash(), execute_one_ipa_transform_pass(), execute_one_pass(), print_current_pass(), statistics_counter_event(), statistics_fini_pass(), statistics_fini_pass_2(), and statistics_histogram_event().

bool first_pass_instance
Set to true if the pass is called the first time during compilation of the
   current function.  Note that using this information in the optimization
   passes is considered not to be clean, and it should be avoided if possible.
   This flag is currently used to prevent loops from being peeled repeatedly
   in jump threading; it will be removed once we preserve loop structures
   throughout the compilation -- we will be able to mark the affected loops
   directly in jump threading, and avoid peeling them next time.   

Referenced by acceptable_pow_call(), execute_todo(), reassociate_bb(), and tree_ssa_dominator_optimize().