GCC Middle and Back End API Reference
tree-pass.h File Reference
#include "timevar.h"
#include "dumpfile.h"
Include dependency graph for tree-pass.h:

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
 

Macros

#define PROP_gimple_any   (1 << 0) /* entire gimple grammar @endverbatim */
 
#define PROP_gimple_lcf   (1 << 1) /* lowered control flow @endverbatim */
 
#define PROP_gimple_leh   (1 << 2) /* lowered eh @endverbatim */
 
#define PROP_cfg   (1 << 3)
 
#define PROP_objsz   (1 << 4) /* object sizes computed @endverbatim */
 
#define PROP_ssa   (1 << 5)
 
#define PROP_no_crit_edges   (1 << 6)
 
#define PROP_rtl   (1 << 7)
 
#define PROP_gimple_lomp   (1 << 8) /* lowered OpenMP directives @endverbatim */
 
#define PROP_cfglayout   (1 << 9) /* cfglayout mode on RTL @endverbatim */
 
#define PROP_gimple_lcx   (1 << 10) /* lowered complex @endverbatim */
 
#define PROP_loops   (1 << 11) /* preserve loop structures @endverbatim */
 
#define PROP_gimple_lvec   (1 << 12) /* lowered vector @endverbatim */
 
#define PROP_gimple_eomp   (1 << 13) /* no OpenMP directives @endverbatim */
 
#define PROP_gimple_lva   (1 << 14) /* No va_arg internal function. @endverbatim */
 
#define PROP_gimple_opt_math
 
#define PROP_gimple_lomp_dev   (1 << 16) /* done omp_device_lower @endverbatim */
 
#define PROP_rtl_split_insns   (1 << 17) /* RTL has insns split. @endverbatim */
 
#define PROP_loop_opts_done
 
#define PROP_assumptions_done
 
#define PROP_gimple_lbitint   (1 << 20) /* lowered large _BitInt @endverbatim */
 
#define PROP_gimple    (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
 
#define TODO_do_not_ggc_collect   (1 << 1)
 
#define TODO_cleanup_cfg   (1 << 5)
 
#define TODO_verify_il   (1 << 6)
 
#define TODO_dump_symtab   (1 << 7)
 
#define TODO_remove_functions   (1 << 8)
 
#define TODO_update_ssa   (1 << 11)
 
#define TODO_update_ssa_no_phi   (1 << 12)
 
#define TODO_update_ssa_full_phi   (1 << 13)
 
#define TODO_update_ssa_only_virtuals   (1 << 14)
 
#define TODO_remove_unused_locals   (1 << 15)
 
#define TODO_df_finish   (1 << 17)
 
#define TODO_df_verify   (1 << 18)
 
#define TODO_mark_first_instance   (1 << 19)
 
#define TODO_rebuild_alias   (1 << 20)
 
#define TODO_update_address_taken   (1 << 21)
 
#define TODO_rebuild_cgraph_edges   (1 << 22)
 
#define TODO_discard_function   (1 << 23)
 
#define TODO_update_ssa_any
 
#define TODO_verify_all   TODO_verify_il
 
#define PENDING_TODO_force_next_scalar_cleanup   (1 << 1)
 

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_sancov (gcc::context *ctxt)
 
gimple_opt_passmake_pass_sancov_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_tail_recursion (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tail_calls (gcc::context *ctxt)
 
gimple_opt_passmake_pass_musttail (gcc::context *ctxt)
 
gimple_opt_passmake_pass_fix_loops (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tree_loop (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tree_no_loop (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tree_loop_init (gcc::context *ctxt)
 
gimple_opt_passmake_pass_loop_versioning (gcc::context *ctxt)
 
gimple_opt_passmake_pass_lim (gcc::context *ctxt)
 
gimple_opt_passmake_pass_linterchange (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tree_unswitch (gcc::context *ctxt)
 
gimple_opt_passmake_pass_loop_split (gcc::context *ctxt)
 
gimple_opt_passmake_pass_loop_jam (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_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_if_to_switch (gcc::context *ctxt)
 
gimple_opt_passmake_pass_loop_distribution (gcc::context *ctxt)
 
gimple_opt_passmake_pass_crc_optimization (gcc::context *ctxt)
 
gimple_opt_passmake_pass_vectorize (gcc::context *ctxt)
 
gimple_opt_passmake_pass_simduid_cleanup (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_pre_slp_scalar_cleanup (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_ch_vect (gcc::context *ctxt)
 
gimple_opt_passmake_pass_sccopy (gcc::context *ctxt)
 
gimple_opt_passmake_pass_ccp (gcc::context *ctxt)
 
gimple_opt_passmake_pass_split_paths (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_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_thread_jumps (gcc::context *ctxt)
 
gimple_opt_passmake_pass_thread_jumps_full (gcc::context *ctxt)
 
gimple_opt_passmake_pass_early_thread_jumps (gcc::context *ctxt)
 
gimple_opt_passmake_pass_split_crit_edges (gcc::context *ctxt)
 
gimple_opt_passmake_pass_laddress (gcc::context *ctxt)
 
gimple_opt_passmake_pass_pre (gcc::context *ctxt)
 
unsigned int tail_merge_optimize (bool)
 
gimple_opt_passmake_pass_profile (gcc::context *ctxt)
 
gimple_opt_passmake_pass_strip_predict_hints (gcc::context *ctxt)
 
gimple_opt_passmake_pass_rebuild_frequencies (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_bitint_O0 (gcc::context *ctxt)
 
gimple_opt_passmake_pass_lower_bitint (gcc::context *ctxt)
 
gimple_opt_passmake_pass_lower_switch (gcc::context *ctxt)
 
gimple_opt_passmake_pass_lower_switch_O0 (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_omp_oacc_kernels_decompose (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_omp_target_link (gcc::context *ctxt)
 
gimple_opt_passmake_pass_oacc_loop_designation (gcc::context *ctxt)
 
gimple_opt_passmake_pass_omp_oacc_neuter_broadcast (gcc::context *ctxt)
 
gimple_opt_passmake_pass_oacc_device_lower (gcc::context *ctxt)
 
gimple_opt_passmake_pass_omp_device_lower (gcc::context *ctxt)
 
gimple_opt_passmake_pass_object_sizes (gcc::context *ctxt)
 
gimple_opt_passmake_pass_early_object_sizes (gcc::context *ctxt)
 
gimple_opt_passmake_pass_warn_access (gcc::context *ctxt)
 
gimple_opt_passmake_pass_warn_printf (gcc::context *ctxt)
 
gimple_opt_passmake_pass_warn_recursion (gcc::context *ctxt)
 
gimple_opt_passmake_pass_strlen (gcc::context *ctxt)
 
gimple_opt_passmake_pass_fold_builtins (gcc::context *ctxt)
 
gimple_opt_passmake_pass_post_ipa_warn (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_expand_pow (gcc::context *ctxt)
 
gimple_opt_passmake_pass_optimize_bswap (gcc::context *ctxt)
 
gimple_opt_passmake_pass_store_merging (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_isolate_erroneous_paths (gcc::context *ctxt)
 
gimple_opt_passmake_pass_array_bounds (gcc::context *ctxt)
 
gimple_opt_passmake_pass_early_vrp (gcc::context *ctxt)
 
gimple_opt_passmake_pass_fast_vrp (gcc::context *ctxt)
 
gimple_opt_passmake_pass_vrp (gcc::context *ctxt)
 
gimple_opt_passmake_pass_assumptions (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_nothrow (gcc::context *ctxt)
 
gimple_opt_passmake_pass_tracer (gcc::context *ctxt)
 
gimple_opt_passmake_pass_warn_restrict (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)
 
gimple_opt_passmake_pass_ubsan (gcc::context *ctxt)
 
gimple_opt_passmake_pass_sanopt (gcc::context *ctxt)
 
gimple_opt_passmake_pass_oacc_kernels (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_oacc (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_oacc_kernels (gcc::context *ctxt)
 
gimple_opt_passmake_pass_warn_nonnull_compare (gcc::context *ctxt)
 
gimple_opt_passmake_pass_sprintf_length (gcc::context *ctxt)
 
gimple_opt_passmake_pass_walloca (gcc::context *ctxt)
 
gimple_opt_passmake_pass_modref (gcc::context *ctxt)
 
gimple_opt_passmake_pass_coroutine_lower_builtins (gcc::context *ctxt)
 
gimple_opt_passmake_pass_coroutine_early_expand_ifns (gcc::context *ctxt)
 
gimple_opt_passmake_pass_adjust_alignment (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_strub_mode (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_strub (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_tree_profile (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_auto_profile (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_build_ssa_passes (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_local_optimization_passes (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_remove_symbols (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_analyzer (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_whole_program_visibility (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_ipa_increase_alignment (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_fn_summary (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_fn_summary (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_cp (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_sra (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_icf (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_devirt (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_odr (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)
 
simple_ipa_opt_passmake_pass_ipa_tm (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_target_clone (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_dispatcher_calls (gcc::context *ctxt)
 
simple_ipa_opt_passmake_pass_omp_simd_clone (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_profile (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_cdtor_merge (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_single_use (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_comdats (gcc::context *ctxt)
 
ipa_opt_pass_dmake_pass_ipa_modref (gcc::context *ctxt)
 
gimple_opt_passmake_pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
 
gimple_opt_passmake_pass_fixup_cfg (gcc::context *ctxt)
 
gimple_opt_passmake_pass_backprop (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_avoid_store_forwarding (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_unroll_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_lower_subreg2 (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_ext_dce (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_jump_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_subreg3 (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_live_range_shrinkage (gcc::context *ctxt)
 
rtl_opt_passmake_pass_early_remat (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_late_combine (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_thread_prologue_and_epilogue (gcc::context *ctxt)
 
rtl_opt_passmake_pass_late_thread_prologue_and_epilogue (gcc::context *ctxt)
 
rtl_opt_passmake_pass_zero_call_used_regs (gcc::context *ctxt)
 
rtl_opt_passmake_pass_stack_adjustments (gcc::context *ctxt)
 
rtl_opt_passmake_pass_sched_fusion (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_fold_mem_offsets (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_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_local_fn_summary (gcc::context *ctxt)
 
gimple_opt_passmake_pass_update_address_taken (gcc::context *ctxt)
 
gimple_opt_passmake_pass_convert_switch (gcc::context *ctxt)
 
gimple_opt_passmake_pass_lower_vaarg (gcc::context *ctxt)
 
gimple_opt_passmake_pass_gimple_isel (gcc::context *ctxt)
 
gimple_opt_passmake_pass_harden_compares (gcc::context *ctxt)
 
gimple_opt_passmake_pass_harden_conditional_branches (gcc::context *ctxt)
 
gimple_opt_passmake_pass_harden_control_flow_redundancy (gcc::context *ctxt)
 
bool execute_one_pass (opt_pass *)
 
void execute_pass_list (function *, opt_pass *)
 
void execute_ipa_pass_list (opt_pass *)
 
void execute_ipa_summary_passes (ipa_opt_pass_d *)
 
void execute_all_ipa_transforms (bool)
 
void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple **)
 
bool pass_init_dump_file (opt_pass *)
 
void pass_fini_dump_file (opt_pass *)
 
void emergency_dump_function (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 *, bool)
 
void ipa_read_summaries (void)
 
void ipa_read_optimization_summaries (void)
 
void register_one_dump_file (opt_pass *)
 
bool function_called_by_processed_nodes_p (void)
 
void do_per_function_toporder (void(*)(function *, void *), void *)
 
void disable_pass (const char *)
 
void enable_pass (const char *)
 
void dump_passes (void)
 

Variables

opt_passcurrent_pass
 

Macro Definition Documentation

◆ PENDING_TODO_force_next_scalar_cleanup

#define PENDING_TODO_force_next_scalar_cleanup   (1 << 1)
To-do flags for pending_TODOs.   
Tell the next scalar cleanup pass that there is
work for it to do.   

Referenced by tree_predictive_commoning(), and tree_unroll_loops_completely_1().

◆ PROP_assumptions_done

#define PROP_assumptions_done
Value:
(1 << 19) /* Assume function kept
around. @endverbatim */

Referenced by symbol_table::compile(), execute_one_pass(), and cgraph_node::verify_node().

◆ PROP_cfg

◆ PROP_cfglayout

#define PROP_cfglayout   (1 << 9) /* cfglayout mode on RTL @endverbatim */

Referenced by dump_properties(), and skip_pass().

◆ PROP_gimple

◆ PROP_gimple_any

◆ PROP_gimple_eomp

#define PROP_gimple_eomp   (1 << 13) /* no OpenMP directives @endverbatim */

◆ PROP_gimple_lbitint

#define PROP_gimple_lbitint   (1 << 20) /* lowered large _BitInt @endverbatim */

◆ PROP_gimple_lcf

#define PROP_gimple_lcf   (1 << 1) /* lowered control flow @endverbatim */

◆ PROP_gimple_lcx

#define PROP_gimple_lcx   (1 << 10) /* lowered complex @endverbatim */

Referenced by dump_properties().

◆ PROP_gimple_leh

#define PROP_gimple_leh   (1 << 2) /* lowered eh @endverbatim */

◆ PROP_gimple_lomp

#define PROP_gimple_lomp   (1 << 8) /* lowered OpenMP directives @endverbatim */

Referenced by dump_properties().

◆ PROP_gimple_lomp_dev

#define PROP_gimple_lomp_dev   (1 << 16) /* done omp_device_lower @endverbatim */

◆ PROP_gimple_lva

#define PROP_gimple_lva   (1 << 14) /* No va_arg internal function. @endverbatim */

◆ PROP_gimple_lvec

#define PROP_gimple_lvec   (1 << 12) /* lowered vector @endverbatim */

◆ PROP_gimple_opt_math

#define PROP_gimple_opt_math
Value:
(1 << 15) /* Disable canonicalization
of math functions; the
current choices have
been optimized. @endverbatim */

Referenced by canonicalize_math_p(), and canonicalize_math_p().

◆ PROP_loop_opts_done

#define PROP_loop_opts_done
Value:
(1 << 18) /* SSA loop optimizations
have completed. @endverbatim */

Referenced by jt_path_registry::cancel_invalid_paths(), do_not_sink(), and back_threader_profitability::profitable_path_p().

◆ PROP_loops

◆ PROP_no_crit_edges

#define PROP_no_crit_edges   (1 << 6)

Referenced by dump_properties().

◆ PROP_objsz

#define PROP_objsz   (1 << 4) /* object sizes computed @endverbatim */

◆ PROP_rtl

◆ PROP_rtl_split_insns

#define PROP_rtl_split_insns   (1 << 17) /* RTL has insns split. @endverbatim */

◆ PROP_ssa

◆ TODO_cleanup_cfg

◆ TODO_df_finish

#define TODO_df_finish   (1 << 17)
Call df_finish at the end of the pass.  This is done after all of
the dumpers have been allowed to run so that they have access to
the instance before it is destroyed.   

Referenced by execute_todo().

◆ TODO_df_verify

#define TODO_df_verify   (1 << 18)
Call df_verify at the end of the pass if checking is enabled.   

Referenced by execute_todo().

◆ TODO_discard_function

#define TODO_discard_function   (1 << 23)
Release function body (unless assumption function)
and stop pass manager.   

Referenced by execute_oacc_loop_designation(), and execute_one_pass().

◆ TODO_do_not_ggc_collect

#define TODO_do_not_ggc_collect   (1 << 1)
To-do flags.   

Referenced by execute_one_ipa_transform_pass(), and execute_one_pass().

◆ TODO_dump_symtab

#define TODO_dump_symtab   (1 << 7)

Referenced by execute_todo().

◆ TODO_mark_first_instance

#define TODO_mark_first_instance   (1 << 19)
Internally used for the first instance of a pass.   

Referenced by add_pass_instance(), and position_pass().

◆ TODO_rebuild_alias

#define TODO_rebuild_alias   (1 << 20)
Rebuild aliasing info.   

Referenced by execute_function_todo().

◆ TODO_rebuild_cgraph_edges

#define TODO_rebuild_cgraph_edges   (1 << 22)
Rebuild the callgraph edges.   

Referenced by execute_feedback_split_functions(), and execute_function_todo().

◆ TODO_remove_functions

#define TODO_remove_functions   (1 << 8)

◆ TODO_remove_unused_locals

#define TODO_remove_unused_locals   (1 << 15)
Some passes leave unused local variables that can be removed from
cfun->local_decls.  This reduces the size of dump files
and the memory footprint for VAR_DECLs.   

Referenced by execute_function_todo(), and optimize_inline_calls().

◆ TODO_update_address_taken

#define TODO_update_address_taken   (1 << 21)
Rebuild the addressable-vars bitmap and do register promotion.   

Referenced by execute_function_todo(), and optimize_inline_calls().

◆ TODO_update_ssa

#define TODO_update_ssa   (1 << 11)
To-do flags for calls to update_ssa.   
Update the SSA form inserting PHI nodes for newly exposed symbols
and virtual names marked for updating.  When updating real names,
only insert PHI nodes for a real name O_j in blocks reached by all
the new and old definitions for O_j.  If the iterated dominance
frontier for O_j is not pruned, we may end up inserting PHI nodes
in blocks that have one or more edges with no incoming definition
for O_j.  This would lead to uninitialized warnings for O_j's
symbol.   

Referenced by autofdo::afdo_annotate_cfg(), autofdo::afdo_vpt_for_early_inline(), canonicalize_induction_variables(), do_ssa_ccp(), autofdo::early_inline(), loop_distribution::execute(), execute_cleanup_cfg_post_optimizing(), execute_fixup_cfg(), execute_ranger_vrp(), execute_split_functions(), execute_update_addresses_taken(), expand_ifn_va_arg_1(), expand_omp_taskreg(), expand_thunk(), gimple_lower_bitint(), gimple_ssa_isolate_erroneous_paths(), insert_updated_phi_nodes_for(), loop_invariant_motion_in_fun(), optimize_inline_calls(), perform_intra_sra(), perform_tree_ssa_dce(), repair_loop_structures(), rewrite_into_loop_closed_ssa_1(), simd_clone_adjust(), tree_function_versioning(), tree_predictive_commoning(), tree_profiling(), tree_ssa_split_loops(), tree_transform_and_unroll_loop(), tree_unroll_loops_completely(), and update_ssa().

◆ TODO_update_ssa_any

#define TODO_update_ssa_any
Value:
#define TODO_update_ssa_full_phi
Definition tree-pass.h:266
#define TODO_update_ssa
Definition tree-pass.h:249
#define TODO_update_ssa_only_virtuals
Definition tree-pass.h:274
#define TODO_update_ssa_no_phi
Definition tree-pass.h:255
Internally used in execute_function_todo().   

Referenced by autofdo::afdo_vpt_for_early_inline(), autofdo::early_inline(), execute_function_todo(), execute_todo(), and inline_transform().

◆ TODO_update_ssa_full_phi

#define TODO_update_ssa_full_phi   (1 << 13)
Insert PHI nodes everywhere they are needed.  No pruning of the
IDF is done.  This is used by passes that need the PHI nodes for
O_j even if it means that some arguments will come from the default
definition of O_j's symbol.

WARNING: If you need to use this flag, chances are that your pass
may be doing something wrong.  Inserting PHI nodes for an old name
where not all edges carry a new replacement may lead to silent
codegen errors or spurious uninitialized warnings.   

Referenced by insert_updated_phi_nodes_for(), and update_ssa().

◆ TODO_update_ssa_no_phi

#define TODO_update_ssa_no_phi   (1 << 12)
Update the SSA form without inserting any new PHI nodes at all.
This is used by passes that have either inserted all the PHI nodes
themselves or passes that need only to patch use-def and def-def
chains for virtuals (e.g., DCE).   

Referenced by gen_parallel_loop(), rewrite_into_loop_closed_ssa_1(), tree_transform_and_unroll_loop(), tree_unswitch_single_loop(), update_ssa(), vect_loop_versioning(), version_loop_by_alias_check(), and version_loop_for_if_conversion().

◆ TODO_update_ssa_only_virtuals

#define TODO_update_ssa_only_virtuals   (1 << 14)
Passes that update the SSA form on their own may want to delegate
the updating of virtual names to the generic updater.  Since FUD
chains are easier to maintain, this simplifies the work they need
to do.  NOTE: If this flag is used, any OLD->NEW mappings for real
names are explicitly destroyed and only the symbols marked for
renaming are processed.   

Referenced by access_with_size_object_size(), compute_fn_summary(), execute_cleanup_eh_1(), execute_expand_omp(), cgraph_node::expand(), cgraph_node::get_body(), gimple_lower_bitint(), inline_transform(), ipa_tm_transform_clone(), ipa_tm_transform_transaction(), ipcp_transform_function(), sink_clobbers(), strdup_object_size(), tree_optimize_tail_calls_1(), tree_predictive_commoning(), tree_ssa_prefetch_arrays(), tree_unroll_loops_completely(), try_vectorize_loop_1(), update_ssa(), and vect_transform_loops().

◆ TODO_verify_all

#define TODO_verify_all   TODO_verify_il

Referenced by execute_function_todo().

◆ TODO_verify_il

#define TODO_verify_il   (1 << 6)

Enumeration Type Documentation

◆ opt_pass_type

Optimization pass type.   
Enumerator
GIMPLE_PASS 
RTL_PASS 
SIMPLE_IPA_PASS 
IPA_PASS 

◆ pass_positioning_ops

Register pass info.  
Enumerator
PASS_POS_INSERT_AFTER 
PASS_POS_INSERT_BEFORE 
PASS_POS_REPLACE 

Function Documentation

◆ debug_pass()

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

References print_current_pass().

◆ disable_pass()

void disable_pass ( const char * arg)
extern
Disable pass specified by ARG.   

References enable_disable_pass().

Referenced by handle_common_deferred_options().

◆ do_per_function_toporder()

◆ dump_passes()

void dump_passes ( void )
extern
Dump all optimization passes.   

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

Referenced by symbol_table::finalize_compilation_unit().

◆ emergency_dump_function()

void emergency_dump_function ( void )
extern
This function is called when an internal compiler error is encountered.
Ensure that function dump is made available before compiler is aborted.   

References cfun, current_pass, symbol_table::dump(), dump_file, dump_file_name, dump_flags, execute_function_dump(), finish_graph_dump_file(), fnotice(), GIMPLE_PASS, IPA_PASS, pass_data::name, PROP_cfg, RTL_PASS, symtab, TDF_GRAPH, and pass_data::type.

Referenced by internal_error_function().

◆ enable_pass()

void enable_pass ( const char * arg)
extern
Enable pass specified by ARG.   

References enable_disable_pass().

Referenced by handle_common_deferred_options().

◆ execute_all_ipa_stmt_fixups()

void execute_all_ipa_stmt_fixups ( struct cgraph_node * node,
gimple ** stmts )
extern
Execute stmt fixup hooks of all IPA passes for NODE and STMTS.   

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

Referenced by input_function().

◆ execute_all_ipa_transforms()

◆ execute_ipa_pass_list()

◆ execute_ipa_summary_passes()

void execute_ipa_summary_passes ( ipa_opt_pass_d * ipa_pass)
extern

◆ execute_one_pass()

◆ execute_pass_list()

◆ function_called_by_processed_nodes_p()

bool function_called_by_processed_nodes_p ( void )
extern
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, current_function_decl, symtab_node::decl, cgraph_node::dump(), dump_file, cgraph_node::get(), cgraph_node::has_gimple_body_p(), cgraph_node::inlined_to, cgraph_edge::next_caller, NULL, cgraph_node::process, and TREE_ASM_WRITTEN.

Referenced by skip_function_for_local_pure_const().

◆ ipa_read_optimization_summaries()

void ipa_read_optimization_summaries ( void )
extern
Read all the summaries for all_regular_ipa_passes.   

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

◆ ipa_read_summaries()

void ipa_read_summaries ( void )
extern
Read all the summaries for all_regular_ipa_passes.   

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

◆ ipa_write_optimization_summaries()

void ipa_write_optimization_summaries ( struct lto_symtab_encoder_d * ,
bool  )
extern

◆ ipa_write_summaries()

◆ make_pass_adjust_alignment()

gimple_opt_pass * make_pass_adjust_alignment ( gcc::context * ctxt)
extern

◆ make_pass_analyzer()

ipa_opt_pass_d * make_pass_analyzer ( gcc::context * ctxt)
extern
Make an instance of the analyzer pass.   

◆ make_pass_array_bounds()

gimple_opt_pass * make_pass_array_bounds ( gcc::context * ctxt)
extern

◆ make_pass_asan()

gimple_opt_pass * make_pass_asan ( gcc::context * ctxt)
extern

◆ make_pass_asan_O0()

gimple_opt_pass * make_pass_asan_O0 ( gcc::context * ctxt)
extern

◆ make_pass_assumptions()

gimple_opt_pass * make_pass_assumptions ( gcc::context * ctxt)
extern

◆ make_pass_backprop()

gimple_opt_pass * make_pass_backprop ( gcc::context * ctxt)
extern

◆ make_pass_branch_prob()

rtl_opt_pass * make_pass_branch_prob ( gcc::context * ctxt)
extern

◆ make_pass_build_alias()

gimple_opt_pass * make_pass_build_alias ( gcc::context * ctxt)
extern

◆ make_pass_build_cfg()

gimple_opt_pass * make_pass_build_cfg ( gcc::context * ctxt)
extern

◆ make_pass_build_cgraph_edges()

gimple_opt_pass * make_pass_build_cgraph_edges ( gcc::context * ctxt)
extern

◆ make_pass_build_ealias()

gimple_opt_pass * make_pass_build_ealias ( gcc::context * ctxt)
extern

◆ make_pass_build_ssa()

gimple_opt_pass * make_pass_build_ssa ( gcc::context * ctxt)
extern

◆ make_pass_build_ssa_passes()

simple_ipa_opt_pass * make_pass_build_ssa_passes ( gcc::context * ctxt)
extern

◆ make_pass_call_cdce()

gimple_opt_pass * make_pass_call_cdce ( gcc::context * ctxt)
extern

◆ make_pass_ccp()

gimple_opt_pass * make_pass_ccp ( gcc::context * ctxt)
extern

◆ make_pass_cd_dce()

gimple_opt_pass * make_pass_cd_dce ( gcc::context * ctxt)
extern

◆ make_pass_ch()

gimple_opt_pass * make_pass_ch ( gcc::context * ctxt)
extern

◆ make_pass_ch_vect()

gimple_opt_pass * make_pass_ch_vect ( gcc::context * ctxt)
extern

◆ make_pass_check_data_deps()

gimple_opt_pass * make_pass_check_data_deps ( gcc::context * ctxt)
extern

◆ make_pass_clean_state()

rtl_opt_pass * make_pass_clean_state ( gcc::context * ctxt)
extern

◆ make_pass_cleanup_barriers()

rtl_opt_pass * make_pass_cleanup_barriers ( gcc::context * ctxt)
extern

◆ make_pass_cleanup_cfg_post_optimizing()

gimple_opt_pass * make_pass_cleanup_cfg_post_optimizing ( gcc::context * ctxt)
extern

◆ make_pass_cleanup_eh()

gimple_opt_pass * make_pass_cleanup_eh ( gcc::context * ctxt)
extern

◆ make_pass_combine()

rtl_opt_pass * make_pass_combine ( gcc::context * ctxt)
extern

◆ make_pass_compare_elim_after_reload()

rtl_opt_pass * make_pass_compare_elim_after_reload ( gcc::context * ctxt)
extern

◆ make_pass_complete_unroll()

gimple_opt_pass * make_pass_complete_unroll ( gcc::context * ctxt)
extern

◆ make_pass_complete_unrolli()

gimple_opt_pass * make_pass_complete_unrolli ( gcc::context * ctxt)
extern

◆ make_pass_compute_alignments()

rtl_opt_pass * make_pass_compute_alignments ( gcc::context * ctxt)
extern

◆ make_pass_convert_switch()

gimple_opt_pass * make_pass_convert_switch ( gcc::context * ctxt)
extern

◆ make_pass_convert_to_eh_region_ranges()

rtl_opt_pass * make_pass_convert_to_eh_region_ranges ( gcc::context * ctxt)
extern

◆ make_pass_copy_prop()

gimple_opt_pass * make_pass_copy_prop ( gcc::context * ctxt)
extern

◆ make_pass_coroutine_early_expand_ifns()

gimple_opt_pass * make_pass_coroutine_early_expand_ifns ( gcc::context * ctxt)
extern

◆ make_pass_coroutine_lower_builtins()

gimple_opt_pass * make_pass_coroutine_lower_builtins ( gcc::context * ctxt)
extern

◆ make_pass_cprop_hardreg()

rtl_opt_pass * make_pass_cprop_hardreg ( gcc::context * ctxt)
extern

◆ make_pass_crc_optimization()

gimple_opt_pass * make_pass_crc_optimization ( gcc::context * ctxt)
extern

◆ make_pass_cse()

rtl_opt_pass * make_pass_cse ( gcc::context * ctxt)
extern

◆ make_pass_cse2()

rtl_opt_pass * make_pass_cse2 ( gcc::context * ctxt)
extern

◆ make_pass_cse_after_global_opts()

rtl_opt_pass * make_pass_cse_after_global_opts ( gcc::context * ctxt)
extern

◆ make_pass_cse_reciprocals()

gimple_opt_pass * make_pass_cse_reciprocals ( gcc::context * ctxt)
extern

◆ make_pass_cse_sincos()

gimple_opt_pass * make_pass_cse_sincos ( gcc::context * ctxt)
extern

◆ make_pass_cselim()

gimple_opt_pass * make_pass_cselim ( gcc::context * ctxt)
extern

◆ make_pass_dce()

gimple_opt_pass * make_pass_dce ( gcc::context * ctxt)
extern

◆ make_pass_delay_slots()

rtl_opt_pass * make_pass_delay_slots ( gcc::context * ctxt)
extern

◆ make_pass_df_finish()

rtl_opt_pass * make_pass_df_finish ( gcc::context * ctxt)
extern

◆ make_pass_df_initialize_no_opt()

rtl_opt_pass * make_pass_df_initialize_no_opt ( gcc::context * ctxt)
extern

◆ make_pass_df_initialize_opt()

rtl_opt_pass * make_pass_df_initialize_opt ( gcc::context * ctxt)
extern

◆ make_pass_diagnose_omp_blocks()

gimple_opt_pass * make_pass_diagnose_omp_blocks ( gcc::context * ctxt)
extern

◆ make_pass_diagnose_tm_blocks()

gimple_opt_pass * make_pass_diagnose_tm_blocks ( gcc::context * ctxt)
extern

◆ make_pass_dispatcher_calls()

simple_ipa_opt_pass * make_pass_dispatcher_calls ( gcc::context * ctxt)
extern

◆ make_pass_dominator()

gimple_opt_pass * make_pass_dominator ( gcc::context * ctxt)
extern

◆ make_pass_dse()

gimple_opt_pass * make_pass_dse ( gcc::context * ctxt)
extern

◆ make_pass_duplicate_computed_gotos()

rtl_opt_pass * make_pass_duplicate_computed_gotos ( gcc::context * ctxt)
extern

◆ make_pass_dwarf2_frame()

rtl_opt_pass * make_pass_dwarf2_frame ( gcc::context * ctxt)
extern

◆ make_pass_early_inline()

gimple_opt_pass * make_pass_early_inline ( gcc::context * ctxt)
extern

◆ make_pass_early_object_sizes()

gimple_opt_pass * make_pass_early_object_sizes ( gcc::context * ctxt)
extern

◆ make_pass_early_remat()

rtl_opt_pass * make_pass_early_remat ( gcc::context * ctxt)
extern

◆ make_pass_early_thread_jumps()

gimple_opt_pass * make_pass_early_thread_jumps ( gcc::context * ctxt)
extern

◆ make_pass_early_tree_profile()

gimple_opt_pass * make_pass_early_tree_profile ( gcc::context * ctxt)
extern

◆ make_pass_early_vrp()

gimple_opt_pass * make_pass_early_vrp ( gcc::context * ctxt)
extern

◆ make_pass_early_warn_uninitialized()

gimple_opt_pass * make_pass_early_warn_uninitialized ( gcc::context * ctxt)
extern

◆ make_pass_empty_loop()

gimple_opt_pass * make_pass_empty_loop ( gcc::context * ctxt)
extern

◆ make_pass_expand()

rtl_opt_pass * make_pass_expand ( gcc::context * ctxt)
extern

◆ make_pass_expand_omp()

gimple_opt_pass * make_pass_expand_omp ( gcc::context * ctxt)
extern

◆ make_pass_expand_omp_ssa()

gimple_opt_pass * make_pass_expand_omp_ssa ( gcc::context * ctxt)
extern

◆ make_pass_expand_pow()

gimple_opt_pass * make_pass_expand_pow ( gcc::context * ctxt)
extern

◆ make_pass_ext_dce()

rtl_opt_pass * make_pass_ext_dce ( gcc::context * ctxt)
extern

◆ make_pass_fast_rtl_byte_dce()

rtl_opt_pass * make_pass_fast_rtl_byte_dce ( gcc::context * ctxt)
extern

◆ make_pass_fast_rtl_dce()

rtl_opt_pass * make_pass_fast_rtl_dce ( gcc::context * ctxt)
extern

◆ make_pass_fast_vrp()

gimple_opt_pass * make_pass_fast_vrp ( gcc::context * ctxt)
extern

◆ make_pass_feedback_split_functions()

gimple_opt_pass * make_pass_feedback_split_functions ( gcc::context * ctxt)
extern

◆ make_pass_final()

rtl_opt_pass * make_pass_final ( gcc::context * ctxt)
extern

◆ make_pass_fix_loops()

gimple_opt_pass * make_pass_fix_loops ( gcc::context * ctxt)
extern

◆ make_pass_fixup_cfg()

gimple_opt_pass * make_pass_fixup_cfg ( gcc::context * ctxt)
extern

◆ make_pass_fold_builtins()

gimple_opt_pass * make_pass_fold_builtins ( gcc::context * ctxt)
extern

◆ make_pass_fold_mem_offsets()

rtl_opt_pass * make_pass_fold_mem_offsets ( gcc::context * ctxt)
extern

◆ make_pass_forwprop()

gimple_opt_pass * make_pass_forwprop ( gcc::context * ctxt)
extern

◆ make_pass_fre()

gimple_opt_pass * make_pass_fre ( gcc::context * ctxt)
extern

◆ make_pass_free_cfg()

rtl_opt_pass * make_pass_free_cfg ( gcc::context * ctxt)
extern

◆ make_pass_gcse2()

rtl_opt_pass * make_pass_gcse2 ( gcc::context * ctxt)
extern

◆ make_pass_gimple_isel()

gimple_opt_pass * make_pass_gimple_isel ( gcc::context * ctxt)
extern

◆ make_pass_graphite()

gimple_opt_pass * make_pass_graphite ( gcc::context * ctxt)
extern

◆ make_pass_graphite_transforms()

gimple_opt_pass * make_pass_graphite_transforms ( gcc::context * ctxt)
extern

◆ make_pass_harden_compares()

gimple_opt_pass * make_pass_harden_compares ( gcc::context * ctxt)
extern
Instantiate a hardcmp pass.   

◆ make_pass_harden_conditional_branches()

gimple_opt_pass * make_pass_harden_conditional_branches ( gcc::context * ctxt)
extern
Instantiate a hardcbr pass.   

◆ make_pass_harden_control_flow_redundancy()

gimple_opt_pass * make_pass_harden_control_flow_redundancy ( gcc::context * ctxt)
extern
Instantiate a hardcfr pass.   

◆ make_pass_if_after_combine()

rtl_opt_pass * make_pass_if_after_combine ( gcc::context * ctxt)
extern

◆ make_pass_if_after_reload()

rtl_opt_pass * make_pass_if_after_reload ( gcc::context * ctxt)
extern

◆ make_pass_if_conversion()

gimple_opt_pass * make_pass_if_conversion ( gcc::context * ctxt)
extern

◆ make_pass_if_to_switch()

gimple_opt_pass * make_pass_if_to_switch ( gcc::context * ctxt)
extern

◆ make_pass_inc_dec()

rtl_opt_pass * make_pass_inc_dec ( gcc::context * ctxt)
extern

◆ make_pass_initialize_regs()

rtl_opt_pass * make_pass_initialize_regs ( gcc::context * ctxt)
extern

◆ make_pass_instantiate_virtual_regs()

rtl_opt_pass * make_pass_instantiate_virtual_regs ( gcc::context * ctxt)
extern

◆ make_pass_into_cfg_layout_mode()

rtl_opt_pass * make_pass_into_cfg_layout_mode ( gcc::context * ctxt)
extern

◆ make_pass_ipa_auto_profile()

simple_ipa_opt_pass * make_pass_ipa_auto_profile ( gcc::context * ctxt)
extern

◆ make_pass_ipa_cdtor_merge()

ipa_opt_pass_d * make_pass_ipa_cdtor_merge ( gcc::context * ctxt)
extern

◆ make_pass_ipa_comdats()

ipa_opt_pass_d * make_pass_ipa_comdats ( gcc::context * ctxt)
extern

◆ make_pass_ipa_cp()

ipa_opt_pass_d * make_pass_ipa_cp ( gcc::context * ctxt)
extern

◆ make_pass_ipa_devirt()

ipa_opt_pass_d * make_pass_ipa_devirt ( gcc::context * ctxt)
extern

◆ make_pass_ipa_fn_summary()

ipa_opt_pass_d * make_pass_ipa_fn_summary ( gcc::context * ctxt)
extern

◆ make_pass_ipa_free_fn_summary()

simple_ipa_opt_pass * make_pass_ipa_free_fn_summary ( gcc::context * ctxt)
extern

◆ make_pass_ipa_free_lang_data()

simple_ipa_opt_pass * make_pass_ipa_free_lang_data ( gcc::context * ctxt)
extern

◆ make_pass_ipa_function_and_variable_visibility()

simple_ipa_opt_pass * make_pass_ipa_function_and_variable_visibility ( gcc::context * ctxt)
extern

◆ make_pass_ipa_icf()

ipa_opt_pass_d * make_pass_ipa_icf ( gcc::context * ctxt)
extern

◆ make_pass_ipa_increase_alignment()

simple_ipa_opt_pass * make_pass_ipa_increase_alignment ( gcc::context * ctxt)
extern

◆ make_pass_ipa_inline()

ipa_opt_pass_d * make_pass_ipa_inline ( gcc::context * ctxt)
extern

◆ make_pass_ipa_lower_emutls()

simple_ipa_opt_pass * make_pass_ipa_lower_emutls ( gcc::context * ctxt)
extern
IPA Passes  

◆ make_pass_ipa_modref()

ipa_opt_pass_d * make_pass_ipa_modref ( gcc::context * ctxt)
extern

◆ make_pass_ipa_oacc()

simple_ipa_opt_pass * make_pass_ipa_oacc ( gcc::context * ctxt)
extern

◆ make_pass_ipa_oacc_kernels()

simple_ipa_opt_pass * make_pass_ipa_oacc_kernels ( gcc::context * ctxt)
extern

◆ make_pass_ipa_odr()

ipa_opt_pass_d * make_pass_ipa_odr ( gcc::context * ctxt)
extern

◆ make_pass_ipa_profile()

ipa_opt_pass_d * make_pass_ipa_profile ( gcc::context * ctxt)
extern

◆ make_pass_ipa_pta()

simple_ipa_opt_pass * make_pass_ipa_pta ( gcc::context * ctxt)
extern

◆ make_pass_ipa_pure_const()

ipa_opt_pass_d * make_pass_ipa_pure_const ( gcc::context * ctxt)
extern

◆ make_pass_ipa_reference()

ipa_opt_pass_d * make_pass_ipa_reference ( gcc::context * ctxt)
extern

◆ make_pass_ipa_remove_symbols()

simple_ipa_opt_pass * make_pass_ipa_remove_symbols ( gcc::context * ctxt)
extern

◆ make_pass_ipa_single_use()

ipa_opt_pass_d * make_pass_ipa_single_use ( gcc::context * ctxt)
extern

◆ make_pass_ipa_sra()

ipa_opt_pass_d * make_pass_ipa_sra ( gcc::context * ctxt)
extern

◆ make_pass_ipa_strub()

simple_ipa_opt_pass * make_pass_ipa_strub ( gcc::context * ctxt)
extern

◆ make_pass_ipa_strub_mode()

simple_ipa_opt_pass * make_pass_ipa_strub_mode ( gcc::context * ctxt)
extern
Create a strub mode pass.   

◆ make_pass_ipa_tm()

simple_ipa_opt_pass * make_pass_ipa_tm ( gcc::context * ctxt)
extern

◆ make_pass_ipa_tree_profile()

simple_ipa_opt_pass * make_pass_ipa_tree_profile ( gcc::context * ctxt)
extern

◆ make_pass_ipa_whole_program_visibility()

ipa_opt_pass_d * make_pass_ipa_whole_program_visibility ( gcc::context * ctxt)
extern

◆ make_pass_ira()

rtl_opt_pass * make_pass_ira ( gcc::context * ctxt)
extern

◆ make_pass_isolate_erroneous_paths()

gimple_opt_pass * make_pass_isolate_erroneous_paths ( gcc::context * ctxt)
extern

◆ make_pass_iv_canon()

gimple_opt_pass * make_pass_iv_canon ( gcc::context * ctxt)
extern

◆ make_pass_iv_optimize()

gimple_opt_pass * make_pass_iv_optimize ( gcc::context * ctxt)
extern

◆ make_pass_jump()

rtl_opt_pass * make_pass_jump ( gcc::context * ctxt)
extern

◆ make_pass_jump2()

rtl_opt_pass * make_pass_jump2 ( gcc::context * ctxt)
extern

◆ make_pass_jump_after_combine()

rtl_opt_pass * make_pass_jump_after_combine ( gcc::context * ctxt)
extern

◆ make_pass_laddress()

gimple_opt_pass * make_pass_laddress ( gcc::context * ctxt)
extern

◆ make_pass_late_combine()

rtl_opt_pass * make_pass_late_combine ( gcc::context * ctxt)
extern

◆ make_pass_late_thread_prologue_and_epilogue()

rtl_opt_pass * make_pass_late_thread_prologue_and_epilogue ( gcc::context * ctxt)
extern

◆ make_pass_late_warn_uninitialized()

gimple_opt_pass * make_pass_late_warn_uninitialized ( gcc::context * ctxt)
extern

◆ make_pass_leaf_regs()

rtl_opt_pass * make_pass_leaf_regs ( gcc::context * ctxt)
extern

◆ make_pass_lim()

gimple_opt_pass * make_pass_lim ( gcc::context * ctxt)
extern

◆ make_pass_linterchange()

gimple_opt_pass * make_pass_linterchange ( gcc::context * ctxt)
extern

◆ make_pass_live_range_shrinkage()

rtl_opt_pass * make_pass_live_range_shrinkage ( gcc::context * ctxt)
extern

◆ make_pass_local_fn_summary()

gimple_opt_pass * make_pass_local_fn_summary ( gcc::context * ctxt)
extern

◆ make_pass_local_optimization_passes()

simple_ipa_opt_pass * make_pass_local_optimization_passes ( gcc::context * ctxt)
extern

◆ make_pass_local_pure_const()

gimple_opt_pass * make_pass_local_pure_const ( gcc::context * ctxt)
extern

◆ make_pass_loop2()

rtl_opt_pass * make_pass_loop2 ( gcc::context * ctxt)
extern

◆ make_pass_loop_distribution()

gimple_opt_pass * make_pass_loop_distribution ( gcc::context * ctxt)
extern

◆ make_pass_loop_jam()

gimple_opt_pass * make_pass_loop_jam ( gcc::context * ctxt)
extern

◆ make_pass_loop_prefetch()

gimple_opt_pass * make_pass_loop_prefetch ( gcc::context * ctxt)
extern

◆ make_pass_loop_split()

gimple_opt_pass * make_pass_loop_split ( gcc::context * ctxt)
extern

◆ make_pass_loop_versioning()

gimple_opt_pass * make_pass_loop_versioning ( gcc::context * ctxt)
extern

◆ make_pass_lower_bitint()

gimple_opt_pass * make_pass_lower_bitint ( gcc::context * ctxt)
extern

◆ make_pass_lower_bitint_O0()

gimple_opt_pass * make_pass_lower_bitint_O0 ( gcc::context * ctxt)
extern

◆ make_pass_lower_cf()

gimple_opt_pass * make_pass_lower_cf ( gcc::context * ctxt)
extern

◆ make_pass_lower_complex()

gimple_opt_pass * make_pass_lower_complex ( gcc::context * ctxt)
extern

◆ make_pass_lower_complex_O0()

gimple_opt_pass * make_pass_lower_complex_O0 ( gcc::context * ctxt)
extern

◆ make_pass_lower_eh()

gimple_opt_pass * make_pass_lower_eh ( gcc::context * ctxt)
extern

◆ make_pass_lower_eh_dispatch()

gimple_opt_pass * make_pass_lower_eh_dispatch ( gcc::context * ctxt)
extern

◆ make_pass_lower_omp()

gimple_opt_pass * make_pass_lower_omp ( gcc::context * ctxt)
extern

◆ make_pass_lower_resx()

gimple_opt_pass * make_pass_lower_resx ( gcc::context * ctxt)
extern

◆ make_pass_lower_subreg()

rtl_opt_pass * make_pass_lower_subreg ( gcc::context * ctxt)
extern

◆ make_pass_lower_subreg2()

rtl_opt_pass * make_pass_lower_subreg2 ( gcc::context * ctxt)
extern

◆ make_pass_lower_subreg3()

rtl_opt_pass * make_pass_lower_subreg3 ( gcc::context * ctxt)
extern

◆ make_pass_lower_switch()

gimple_opt_pass * make_pass_lower_switch ( gcc::context * ctxt)
extern

◆ make_pass_lower_switch_O0()

gimple_opt_pass * make_pass_lower_switch_O0 ( gcc::context * ctxt)
extern

◆ make_pass_lower_tm()

gimple_opt_pass * make_pass_lower_tm ( gcc::context * ctxt)
extern

◆ make_pass_lower_vaarg()

gimple_opt_pass * make_pass_lower_vaarg ( gcc::context * ctxt)
extern

◆ make_pass_lower_vector()

gimple_opt_pass * make_pass_lower_vector ( gcc::context * ctxt)
extern

◆ make_pass_lower_vector_ssa()

gimple_opt_pass * make_pass_lower_vector_ssa ( gcc::context * ctxt)
extern

◆ make_pass_machine_reorg()

rtl_opt_pass * make_pass_machine_reorg ( gcc::context * ctxt)
extern

◆ make_pass_match_asm_constraints()

rtl_opt_pass * make_pass_match_asm_constraints ( gcc::context * ctxt)
extern

◆ make_pass_merge_phi()

gimple_opt_pass * make_pass_merge_phi ( gcc::context * ctxt)
extern

◆ make_pass_mode_switching()

rtl_opt_pass * make_pass_mode_switching ( gcc::context * ctxt)
extern

◆ make_pass_modref()

gimple_opt_pass * make_pass_modref ( gcc::context * ctxt)
extern

◆ make_pass_musttail()

gimple_opt_pass * make_pass_musttail ( gcc::context * ctxt)
extern

◆ make_pass_nothrow()

gimple_opt_pass * make_pass_nothrow ( gcc::context * ctxt)
extern

◆ make_pass_nrv()

gimple_opt_pass * make_pass_nrv ( gcc::context * ctxt)
extern

◆ make_pass_oacc_device_lower()

gimple_opt_pass * make_pass_oacc_device_lower ( gcc::context * ctxt)
extern

◆ make_pass_oacc_kernels()

gimple_opt_pass * make_pass_oacc_kernels ( gcc::context * ctxt)
extern

◆ make_pass_oacc_loop_designation()

gimple_opt_pass * make_pass_oacc_loop_designation ( gcc::context * ctxt)
extern

◆ make_pass_object_sizes()

gimple_opt_pass * make_pass_object_sizes ( gcc::context * ctxt)
extern

◆ make_pass_omp_device_lower()

gimple_opt_pass * make_pass_omp_device_lower ( gcc::context * ctxt)
extern

◆ make_pass_omp_oacc_kernels_decompose()

gimple_opt_pass * make_pass_omp_oacc_kernels_decompose ( gcc::context * ctxt)
extern

◆ make_pass_omp_oacc_neuter_broadcast()

gimple_opt_pass * make_pass_omp_oacc_neuter_broadcast ( gcc::context * ctxt)
extern

◆ make_pass_omp_simd_clone()

simple_ipa_opt_pass * make_pass_omp_simd_clone ( gcc::context * ctxt)
extern

◆ make_pass_omp_target_link()

gimple_opt_pass * make_pass_omp_target_link ( gcc::context * ctxt)
extern

◆ make_pass_optimize_bswap()

gimple_opt_pass * make_pass_optimize_bswap ( gcc::context * ctxt)
extern

◆ make_pass_optimize_widening_mul()

gimple_opt_pass * make_pass_optimize_widening_mul ( gcc::context * ctxt)
extern

◆ make_pass_outof_cfg_layout_mode()

rtl_opt_pass * make_pass_outof_cfg_layout_mode ( gcc::context * ctxt)
extern

◆ make_pass_parallelize_loops()

gimple_opt_pass * make_pass_parallelize_loops ( gcc::context * ctxt)
extern

◆ make_pass_partition_blocks()

rtl_opt_pass * make_pass_partition_blocks ( gcc::context * ctxt)
extern

◆ make_pass_peephole2()

rtl_opt_pass * make_pass_peephole2 ( gcc::context * ctxt)
extern

◆ make_pass_phiopt()

gimple_opt_pass * make_pass_phiopt ( gcc::context * ctxt)
extern

◆ make_pass_phiprop()

gimple_opt_pass * make_pass_phiprop ( gcc::context * ctxt)
extern

◆ make_pass_post_ipa_warn()

gimple_opt_pass * make_pass_post_ipa_warn ( gcc::context * ctxt)
extern

◆ make_pass_postreload_cse()

rtl_opt_pass * make_pass_postreload_cse ( gcc::context * ctxt)
extern

◆ make_pass_pre()

gimple_opt_pass * make_pass_pre ( gcc::context * ctxt)
extern

◆ make_pass_pre_slp_scalar_cleanup()

gimple_opt_pass * make_pass_pre_slp_scalar_cleanup ( gcc::context * ctxt)
extern

◆ make_pass_predcom()

gimple_opt_pass * make_pass_predcom ( gcc::context * ctxt)
extern

◆ make_pass_profile()

gimple_opt_pass * make_pass_profile ( gcc::context * ctxt)
extern

◆ make_pass_reassoc()

gimple_opt_pass * make_pass_reassoc ( gcc::context * ctxt)
extern

◆ make_pass_rebuild_cgraph_edges()

gimple_opt_pass * make_pass_rebuild_cgraph_edges ( gcc::context * ctxt)
extern

◆ make_pass_rebuild_frequencies()

gimple_opt_pass * make_pass_rebuild_frequencies ( gcc::context * ctxt)
extern

◆ make_pass_ree()

rtl_opt_pass * make_pass_ree ( gcc::context * ctxt)
extern

◆ make_pass_refactor_eh()

gimple_opt_pass * make_pass_refactor_eh ( gcc::context * ctxt)
extern

◆ make_pass_reginfo_init()

rtl_opt_pass * make_pass_reginfo_init ( gcc::context * ctxt)
extern

◆ make_pass_regrename()

rtl_opt_pass * make_pass_regrename ( gcc::context * ctxt)
extern

◆ make_pass_release_ssa_names()

gimple_opt_pass * make_pass_release_ssa_names ( gcc::context * ctxt)
extern

◆ make_pass_reload()

rtl_opt_pass * make_pass_reload ( gcc::context * ctxt)
extern

◆ make_pass_remove_cgraph_callee_edges()

gimple_opt_pass * make_pass_remove_cgraph_callee_edges ( gcc::context * ctxt)
extern

◆ make_pass_rename_ssa_copies()

gimple_opt_pass * make_pass_rename_ssa_copies ( gcc::context * ctxt)
extern

◆ make_pass_reorder_blocks()

rtl_opt_pass * make_pass_reorder_blocks ( gcc::context * ctxt)
extern

◆ make_pass_return_slot()

gimple_opt_pass * make_pass_return_slot ( gcc::context * ctxt)
extern

◆ make_pass_rtl_avoid_store_forwarding()

rtl_opt_pass * make_pass_rtl_avoid_store_forwarding ( gcc::context * ctxt)
extern

◆ make_pass_rtl_cprop()

rtl_opt_pass * make_pass_rtl_cprop ( gcc::context * ctxt)
extern

◆ make_pass_rtl_dce()

rtl_opt_pass * make_pass_rtl_dce ( gcc::context * ctxt)
extern

◆ make_pass_rtl_doloop()

rtl_opt_pass * make_pass_rtl_doloop ( gcc::context * ctxt)
extern

◆ make_pass_rtl_dse1()

rtl_opt_pass * make_pass_rtl_dse1 ( gcc::context * ctxt)
extern

◆ make_pass_rtl_dse2()

rtl_opt_pass * make_pass_rtl_dse2 ( gcc::context * ctxt)
extern

◆ make_pass_rtl_dse3()

rtl_opt_pass * make_pass_rtl_dse3 ( gcc::context * ctxt)
extern

◆ make_pass_rtl_fwprop()

rtl_opt_pass * make_pass_rtl_fwprop ( gcc::context * ctxt)
extern

◆ make_pass_rtl_fwprop_addr()

rtl_opt_pass * make_pass_rtl_fwprop_addr ( gcc::context * ctxt)
extern

◆ make_pass_rtl_hoist()

rtl_opt_pass * make_pass_rtl_hoist ( gcc::context * ctxt)
extern

◆ make_pass_rtl_ifcvt()

rtl_opt_pass * make_pass_rtl_ifcvt ( gcc::context * ctxt)
extern

◆ make_pass_rtl_loop_done()

rtl_opt_pass * make_pass_rtl_loop_done ( gcc::context * ctxt)
extern

◆ make_pass_rtl_loop_init()

rtl_opt_pass * make_pass_rtl_loop_init ( gcc::context * ctxt)
extern

◆ make_pass_rtl_move_loop_invariants()

rtl_opt_pass * make_pass_rtl_move_loop_invariants ( gcc::context * ctxt)
extern

◆ make_pass_rtl_pre()

rtl_opt_pass * make_pass_rtl_pre ( gcc::context * ctxt)
extern

◆ make_pass_rtl_seqabstr()

rtl_opt_pass * make_pass_rtl_seqabstr ( gcc::context * ctxt)
extern

◆ make_pass_rtl_store_motion()

rtl_opt_pass * make_pass_rtl_store_motion ( gcc::context * ctxt)
extern

◆ make_pass_rtl_unroll_loops()

rtl_opt_pass * make_pass_rtl_unroll_loops ( gcc::context * ctxt)
extern

◆ make_pass_sancov()

gimple_opt_pass * make_pass_sancov ( gcc::context * ctxt)
extern

◆ make_pass_sancov_O0()

gimple_opt_pass * make_pass_sancov_O0 ( gcc::context * ctxt)
extern

◆ make_pass_sanopt()

gimple_opt_pass * make_pass_sanopt ( gcc::context * ctxt)
extern

◆ make_pass_sccopy()

gimple_opt_pass * make_pass_sccopy ( gcc::context * ctxt)
extern

◆ make_pass_scev_cprop()

gimple_opt_pass * make_pass_scev_cprop ( gcc::context * ctxt)
extern

◆ make_pass_sched()

rtl_opt_pass * make_pass_sched ( gcc::context * ctxt)
extern

◆ make_pass_sched2()

rtl_opt_pass * make_pass_sched2 ( gcc::context * ctxt)
extern

◆ make_pass_sched_fusion()

rtl_opt_pass * make_pass_sched_fusion ( gcc::context * ctxt)
extern

◆ make_pass_set_nothrow_function_flags()

rtl_opt_pass * make_pass_set_nothrow_function_flags ( gcc::context * ctxt)
extern

◆ make_pass_shorten_branches()

rtl_opt_pass * make_pass_shorten_branches ( gcc::context * ctxt)
extern

◆ make_pass_simduid_cleanup()

gimple_opt_pass * make_pass_simduid_cleanup ( gcc::context * ctxt)
extern

◆ make_pass_sink_code()

gimple_opt_pass * make_pass_sink_code ( gcc::context * ctxt)
extern

◆ make_pass_slp_vectorize()

gimple_opt_pass * make_pass_slp_vectorize ( gcc::context * ctxt)
extern

◆ make_pass_sms()

rtl_opt_pass * make_pass_sms ( gcc::context * ctxt)
extern

◆ make_pass_split_after_reload()

rtl_opt_pass * make_pass_split_after_reload ( gcc::context * ctxt)
extern

◆ make_pass_split_all_insns()

rtl_opt_pass * make_pass_split_all_insns ( gcc::context * ctxt)
extern

◆ make_pass_split_before_regstack()

rtl_opt_pass * make_pass_split_before_regstack ( gcc::context * ctxt)
extern

◆ make_pass_split_before_sched2()

rtl_opt_pass * make_pass_split_before_sched2 ( gcc::context * ctxt)
extern

◆ make_pass_split_crit_edges()

gimple_opt_pass * make_pass_split_crit_edges ( gcc::context * ctxt)
extern

◆ make_pass_split_for_shorten_branches()

rtl_opt_pass * make_pass_split_for_shorten_branches ( gcc::context * ctxt)
extern

◆ make_pass_split_functions()

gimple_opt_pass * make_pass_split_functions ( gcc::context * ctxt)
extern

◆ make_pass_split_paths()

gimple_opt_pass * make_pass_split_paths ( gcc::context * ctxt)
extern

◆ make_pass_sprintf_length()

gimple_opt_pass * make_pass_sprintf_length ( gcc::context * ctxt)
extern

◆ make_pass_sra()

gimple_opt_pass * make_pass_sra ( gcc::context * ctxt)
extern

◆ make_pass_sra_early()

gimple_opt_pass * make_pass_sra_early ( gcc::context * ctxt)
extern

◆ make_pass_stack_adjustments()

rtl_opt_pass * make_pass_stack_adjustments ( gcc::context * ctxt)
extern

◆ make_pass_stack_ptr_mod()

rtl_opt_pass * make_pass_stack_ptr_mod ( gcc::context * ctxt)
extern

◆ make_pass_stack_regs()

rtl_opt_pass * make_pass_stack_regs ( gcc::context * ctxt)
extern

◆ make_pass_stack_regs_run()

rtl_opt_pass * make_pass_stack_regs_run ( gcc::context * ctxt)
extern

◆ make_pass_stdarg()

gimple_opt_pass * make_pass_stdarg ( gcc::context * ctxt)
extern

◆ make_pass_store_merging()

gimple_opt_pass * make_pass_store_merging ( gcc::context * ctxt)
extern
Construct and return a store merging pass object.   

◆ make_pass_strength_reduction()

gimple_opt_pass * make_pass_strength_reduction ( gcc::context * ctxt)
extern

◆ make_pass_strip_predict_hints()

gimple_opt_pass * make_pass_strip_predict_hints ( gcc::context * ctxt)
extern

◆ make_pass_strlen()

gimple_opt_pass * make_pass_strlen ( gcc::context * ctxt)
extern

◆ make_pass_tail_calls()

gimple_opt_pass * make_pass_tail_calls ( gcc::context * ctxt)
extern

◆ make_pass_tail_recursion()

gimple_opt_pass * make_pass_tail_recursion ( gcc::context * ctxt)
extern

◆ make_pass_target_clone()

simple_ipa_opt_pass * make_pass_target_clone ( gcc::context * ctxt)
extern

◆ make_pass_thread_jumps()

gimple_opt_pass * make_pass_thread_jumps ( gcc::context * ctxt)
extern

◆ make_pass_thread_jumps_full()

gimple_opt_pass * make_pass_thread_jumps_full ( gcc::context * ctxt)
extern

◆ make_pass_thread_prologue_and_epilogue()

rtl_opt_pass * make_pass_thread_prologue_and_epilogue ( gcc::context * ctxt)
extern

◆ make_pass_tm_edges()

gimple_opt_pass * make_pass_tm_edges ( gcc::context * ctxt)
extern

◆ make_pass_tm_init()

gimple_opt_pass * make_pass_tm_init ( gcc::context * ctxt)
extern

◆ make_pass_tm_mark()

gimple_opt_pass * make_pass_tm_mark ( gcc::context * ctxt)
extern

◆ make_pass_tm_memopt()

gimple_opt_pass * make_pass_tm_memopt ( gcc::context * ctxt)
extern

◆ make_pass_tracer()

gimple_opt_pass * make_pass_tracer ( gcc::context * ctxt)
extern

◆ make_pass_tree_ifcombine()

gimple_opt_pass * make_pass_tree_ifcombine ( gcc::context * ctxt)
extern

◆ make_pass_tree_loop()

gimple_opt_pass * make_pass_tree_loop ( gcc::context * ctxt)
extern

◆ make_pass_tree_loop_done()

gimple_opt_pass * make_pass_tree_loop_done ( gcc::context * ctxt)
extern

◆ make_pass_tree_loop_init()

gimple_opt_pass * make_pass_tree_loop_init ( gcc::context * ctxt)
extern

◆ make_pass_tree_no_loop()

gimple_opt_pass * make_pass_tree_no_loop ( gcc::context * ctxt)
extern

◆ make_pass_tree_unswitch()

gimple_opt_pass * make_pass_tree_unswitch ( gcc::context * ctxt)
extern

◆ make_pass_tsan()

gimple_opt_pass * make_pass_tsan ( gcc::context * ctxt)
extern

◆ make_pass_tsan_O0()

gimple_opt_pass * make_pass_tsan_O0 ( gcc::context * ctxt)
extern

◆ make_pass_ubsan()

gimple_opt_pass * make_pass_ubsan ( gcc::context * ctxt)
extern

◆ make_pass_ud_rtl_dce()

rtl_opt_pass * make_pass_ud_rtl_dce ( gcc::context * ctxt)
extern

◆ make_pass_uncprop()

gimple_opt_pass * make_pass_uncprop ( gcc::context * ctxt)
extern

◆ make_pass_update_address_taken()

gimple_opt_pass * make_pass_update_address_taken ( gcc::context * ctxt)
extern

◆ make_pass_value_profile_transformations()

rtl_opt_pass * make_pass_value_profile_transformations ( gcc::context * ctxt)
extern

◆ make_pass_variable_tracking()

rtl_opt_pass * make_pass_variable_tracking ( gcc::context * ctxt)
extern

◆ make_pass_vectorize()

gimple_opt_pass * make_pass_vectorize ( gcc::context * ctxt)
extern

◆ make_pass_vrp()

gimple_opt_pass * make_pass_vrp ( gcc::context * ctxt)
extern

◆ make_pass_vtable_verify()

gimple_opt_pass * make_pass_vtable_verify ( gcc::context * ctxt)
extern

◆ make_pass_walloca()

gimple_opt_pass * make_pass_walloca ( gcc::context * ctxt)
extern

◆ make_pass_warn_access()

gimple_opt_pass * make_pass_warn_access ( gcc::context * ctxt)
extern
Return a new instance of the pass.   

◆ make_pass_warn_function_noreturn()

gimple_opt_pass * make_pass_warn_function_noreturn ( gcc::context * ctxt)
extern

◆ make_pass_warn_function_return()

gimple_opt_pass * make_pass_warn_function_return ( gcc::context * ctxt)
extern

◆ make_pass_warn_nonnull_compare()

gimple_opt_pass * make_pass_warn_nonnull_compare ( gcc::context * ctxt)
extern

◆ make_pass_warn_printf()

gimple_opt_pass * make_pass_warn_printf ( gcc::context * ctxt)
extern

◆ make_pass_warn_recursion()

gimple_opt_pass * make_pass_warn_recursion ( gcc::context * ctxt)
extern

◆ make_pass_warn_restrict()

gimple_opt_pass * make_pass_warn_restrict ( gcc::context * ctxt)
extern

◆ make_pass_warn_unused_result()

gimple_opt_pass * make_pass_warn_unused_result ( gcc::context * ctxt)
extern

◆ make_pass_web()

rtl_opt_pass * make_pass_web ( gcc::context * ctxt)
extern

◆ make_pass_zero_call_used_regs()

rtl_opt_pass * make_pass_zero_call_used_regs ( gcc::context * ctxt)
extern

◆ pass_fini_dump_file()

◆ pass_init_dump_file()

◆ print_current_pass()

void print_current_pass ( FILE * file)
extern
Call from anywhere to find out what pass this is.  Useful for
printing out debugging information deep inside an service
routine.   

References current_pass, pass_data::name, and opt_pass::static_pass_number.

Referenced by debug_pass().

◆ register_one_dump_file()

void register_one_dump_file ( opt_pass * pass)
extern
Iterate over the pass tree allocating dump file numbers.  We want
to do this depth first, and independent of whether the pass is
enabled or not.   

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

Referenced by gcc::dump_manager::register_pass().

◆ register_pass() [1/2]

void register_pass ( opt_pass * pass,
pass_positioning_ops pos,
const char * ref_pass_name,
int ref_pass_inst_number )
extern

◆ register_pass() [2/2]

void register_pass ( struct register_pass_info * pass_info)
extern
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.   
Hooks a new pass into the pass lists.

PASS_INFO   - pass information that specifies the opt_pass object,
              reference pass, instance number, and how to position
              the pass   

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

Referenced by register_callback().

◆ tail_merge_optimize()

Variable Documentation

◆ current_pass