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

void register_pass (register_pass_info *)
void register_pass (opt_pass *pass, pass_positioning_ops pos, const char *ref_pass_name, int ref_pass_inst_number)
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_devirt (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_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 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.  
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 last.

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. 
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.  
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.  
void ipa_read_summaries ( void  )
   Read all the summaries for all_regular_ipa_passes and all_lto_gen_passes.  
void ipa_write_optimization_summaries ( struct lto_symtab_encoder_d )
void ipa_write_summaries ( void  )
   Write out summaries for all the nodes in the callgraph.  
     Create the callgraph set in the same order used in
     cgraph_expand_all_functions.  This mostly facilitates debugging,
     since it causes the gimple file to be processed in the same order
     as the source code.  
             When streaming out references to statements as part of some IPA
             pass summary, the statements need to have uids assigned and the
             following does that for all the IPA passes here. Naturally, this
             ordering then matches the one IPA-passes get in their stmt_fixup
             hooks.  

References GIMPLE_PASS, IPA_PASS, ipa_read_summaries_1(), pass_fini_dump_file(), pass_init_dump_file(), ipa_opt_pass_d::read_summary, opt_pass::sub, timevar_pop(), timevar_push(), pass_data::tv_id, and pass_data::type.

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)
ipa_opt_pass_d* make_pass_ipa_devirt ( 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_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_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 ( register_pass_info )
   Registers a new pass.  Either fill out the register_pass_info or specify
   the individual parameters.  The pass object is expected to have been
   allocated using operator new and the pass manager takes the ownership of
   the pass object.  
void register_pass ( opt_pass pass,
pass_positioning_ops  pos,
const char *  ref_pass_name,
int  ref_pass_inst_number 
)
unsigned int tail_merge_optimize ( unsigned  int)

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 gcc::pass_manager::execute_pass_mode_switching(), statistics_fini_pass_3(), and verify_curr_properties().

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.