Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
f1bd2543
Commit
f1bd2543
authored
Feb 04, 2007
by
Jan Hubicka
Committed by
Jan Hubicka
Feb 04, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* passes.c (init_optimization_passes): Reindent.
From-SVN: r121573
parent
1084e689
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
266 additions
and
258 deletions
+266
-258
gcc/ChangeLog
+4
-0
gcc/passes.c
+262
-258
No files found.
gcc/ChangeLog
View file @
f1bd2543
2007-02-04 Jan Hubicka <jh@suse.cz>
2007-02-04 Jan Hubicka <jh@suse.cz>
* passes.c (init_optimization_passes): Reindent.
2007-02-04 Jan Hubicka <jh@suse.cz>
Eric Botcazou <ebotcazou@libertysurf.fr>
Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-optimize.c (has_abnormal_outgoing_edge_p): Move to tree-inline.
* tree-optimize.c (has_abnormal_outgoing_edge_p): Move to tree-inline.
...
...
gcc/passes.c
View file @
f1bd2543
...
@@ -427,7 +427,6 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
...
@@ -427,7 +427,6 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
cgraph_expand_all_functions ()
cgraph_expand_all_functions ()
for each node N in the cgraph
for each node N in the cgraph
cgraph_expand_function (N)
cgraph_expand_function (N)
cgraph_lower_function (N) -> Now a NOP.
lang_hooks.callgraph.expand_function (DECL (N))
lang_hooks.callgraph.expand_function (DECL (N))
tree_rest_of_compilation (DECL (N)) -> all_passes
tree_rest_of_compilation (DECL (N)) -> all_passes
*/
*/
...
@@ -439,28 +438,10 @@ init_optimization_passes (void)
...
@@ -439,28 +438,10 @@ init_optimization_passes (void)
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS))
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS))
/* Interprocedural optimization passes. */
/* All passes needed to lower the function into shape optimizers can
p
=
&
all_ipa_passes
;
operate on. These passes are always run first on the function, but
NEXT_PASS
(
pass_ipa_function_and_variable_visibility
);
backend might produce already lowered functions that are not processed
NEXT_PASS
(
pass_ipa_early_inline
);
by these passes. */
NEXT_PASS
(
pass_early_local_passes
);
NEXT_PASS
(
pass_ipa_increase_alignment
);
NEXT_PASS
(
pass_ipa_cp
);
NEXT_PASS
(
pass_ipa_inline
);
NEXT_PASS
(
pass_ipa_reference
);
NEXT_PASS
(
pass_ipa_pure_const
);
NEXT_PASS
(
pass_ipa_type_escape
);
NEXT_PASS
(
pass_ipa_pta
);
*
p
=
NULL
;
p
=
&
pass_ipa_early_inline
.
sub
;
NEXT_PASS
(
pass_early_inline
);
NEXT_PASS
(
pass_inline_parameters
);
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
*
p
=
NULL
;
/* All passes needed to lower the function into shape optimizers can
operate on. */
p
=
&
all_lowering_passes
;
p
=
&
all_lowering_passes
;
NEXT_PASS
(
pass_remove_useless_stmts
);
NEXT_PASS
(
pass_remove_useless_stmts
);
NEXT_PASS
(
pass_mudflap_1
);
NEXT_PASS
(
pass_mudflap_1
);
...
@@ -475,255 +456,278 @@ init_optimization_passes (void)
...
@@ -475,255 +456,278 @@ init_optimization_passes (void)
NEXT_PASS
(
pass_inline_parameters
);
NEXT_PASS
(
pass_inline_parameters
);
*
p
=
NULL
;
*
p
=
NULL
;
p
=
&
pass_early_local_passes
.
sub
;
/* Interprocedural optimization passes.
NEXT_PASS
(
pass_tree_profile
);
All these passes are ignored in -fno-unit-at-a-time
NEXT_PASS
(
pass_cleanup_cfg
);
except for subpases of early_local_pases. */
NEXT_PASS
(
pass_init_datastructures
);
p
=
&
all_ipa_passes
;
NEXT_PASS
(
pass_expand_omp
);
NEXT_PASS
(
pass_ipa_function_and_variable_visibility
);
NEXT_PASS
(
pass_all_early_optimizations
);
NEXT_PASS
(
pass_ipa_early_inline
);
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
{
NEXT_PASS
(
pass_inline_parameters
);
struct
tree_opt_pass
**
p
=
&
pass_ipa_early_inline
.
sub
;
*
p
=
NULL
;
NEXT_PASS
(
pass_early_inline
);
NEXT_PASS
(
pass_inline_parameters
);
p
=
&
pass_all_early_optimizations
.
sub
;
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
NEXT_PASS
(
pass_referenced_vars
);
}
NEXT_PASS
(
pass_reset_cc_flags
);
NEXT_PASS
(
pass_early_local_passes
);
NEXT_PASS
(
pass_build_ssa
);
{
NEXT_PASS
(
pass_early_warn_uninitialized
);
struct
tree_opt_pass
**
p
=
&
pass_early_local_passes
.
sub
;
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
NEXT_PASS
(
pass_tree_profile
);
NEXT_PASS
(
pass_early_inline
);
NEXT_PASS
(
pass_cleanup_cfg
);
NEXT_PASS
(
pass_cleanup_cfg
);
NEXT_PASS
(
pass_init_datastructures
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_expand_omp
);
NEXT_PASS
(
pass_ccp
);
NEXT_PASS
(
pass_all_early_optimizations
);
{
NEXT_PASS
(
pass_forwprop
);
struct
tree_opt_pass
**
p
=
&
pass_all_early_optimizations
.
sub
;
NEXT_PASS
(
pass_sra
);
NEXT_PASS
(
pass_referenced_vars
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_reset_cc_flags
);
NEXT_PASS
(
pass_merge_phi
);
NEXT_PASS
(
pass_build_ssa
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_early_warn_uninitialized
);
NEXT_PASS
(
pass_tail_recursion
);
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
NEXT_PASS
(
pass_release_ssa_names
);
NEXT_PASS
(
pass_early_inline
);
NEXT_PASS
(
pass_cleanup_cfg
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_ccp
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_sra
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_merge_phi
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_tail_recursion
);
NEXT_PASS
(
pass_release_ssa_names
);
}
NEXT_PASS
(
pass_rebuild_cgraph_edges
);
NEXT_PASS
(
pass_inline_parameters
);
}
NEXT_PASS
(
pass_ipa_increase_alignment
);
NEXT_PASS
(
pass_ipa_cp
);
NEXT_PASS
(
pass_ipa_inline
);
NEXT_PASS
(
pass_ipa_reference
);
NEXT_PASS
(
pass_ipa_pure_const
);
NEXT_PASS
(
pass_ipa_type_escape
);
NEXT_PASS
(
pass_ipa_pta
);
*
p
=
NULL
;
*
p
=
NULL
;
/* These passes are run after IPA passes on every function that is being output
to the assemlber file. */
p
=
&
all_passes
;
p
=
&
all_passes
;
NEXT_PASS
(
pass_apply_inline
);
NEXT_PASS
(
pass_apply_inline
);
NEXT_PASS
(
pass_all_optimizations
);
NEXT_PASS
(
pass_all_optimizations
);
{
struct
tree_opt_pass
**
p
=
&
pass_all_optimizations
.
sub
;
NEXT_PASS
(
pass_create_structure_vars
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_return_slot
);
NEXT_PASS
(
pass_rename_ssa_copies
);
/* Initial scalar cleanups. */
NEXT_PASS
(
pass_ccp
);
NEXT_PASS
(
pass_fre
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_merge_phi
);
NEXT_PASS
(
pass_vrp
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_tail_recursion
);
NEXT_PASS
(
pass_profile
);
NEXT_PASS
(
pass_ch
);
NEXT_PASS
(
pass_stdarg
);
NEXT_PASS
(
pass_lower_complex
);
NEXT_PASS
(
pass_sra
);
/* FIXME: SRA may generate arbitrary gimple code, exposing new
aliased and call-clobbered variables. As mentioned below,
pass_may_alias should be a TODO item. */
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_reassoc
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_dse
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_object_sizes
);
NEXT_PASS
(
pass_store_ccp
);
NEXT_PASS
(
pass_store_copy_prop
);
NEXT_PASS
(
pass_fold_builtins
);
NEXT_PASS
(
pass_cse_sincos
);
/* FIXME: May alias should a TODO but for 4.0.0,
we add may_alias right after fold builtins
which can create arbitrary GIMPLE. */
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_split_crit_edges
);
NEXT_PASS
(
pass_pre
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_sink_code
);
NEXT_PASS
(
pass_tree_loop
);
{
struct
tree_opt_pass
**
p
=
&
pass_tree_loop
.
sub
;
NEXT_PASS
(
pass_tree_loop_init
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_lim
);
NEXT_PASS
(
pass_tree_unswitch
);
NEXT_PASS
(
pass_scev_cprop
);
NEXT_PASS
(
pass_empty_loop
);
NEXT_PASS
(
pass_record_bounds
);
NEXT_PASS
(
pass_linear_transform
);
NEXT_PASS
(
pass_iv_canon
);
NEXT_PASS
(
pass_if_conversion
);
NEXT_PASS
(
pass_vectorize
);
{
struct
tree_opt_pass
**
p
=
&
pass_vectorize
.
sub
;
NEXT_PASS
(
pass_lower_vector_ssa
);
NEXT_PASS
(
pass_dce_loop
);
}
/* NEXT_PASS (pass_may_alias) cannot be done again because the
vectorizer creates alias relations that are not supported by
pass_may_alias. */
NEXT_PASS
(
pass_complete_unroll
);
NEXT_PASS
(
pass_loop_prefetch
);
NEXT_PASS
(
pass_iv_optimize
);
NEXT_PASS
(
pass_tree_loop_done
);
}
NEXT_PASS
(
pass_cse_reciprocals
);
NEXT_PASS
(
pass_reassoc
);
NEXT_PASS
(
pass_vrp
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_cd_dce
);
/* FIXME: If DCE is not run before checking for uninitialized uses,
we may get false warnings (e.g., testsuite/gcc.dg/uninit-5.c).
However, this also causes us to misdiagnose cases that should be
real warnings (e.g., testsuite/gcc.dg/pr18501.c).
To fix the false positives in uninit-5.c, we would have to
account for the predicates protecting the set and the use of each
variable. Using a representation like Gated Single Assignment
may help. */
NEXT_PASS
(
pass_late_warn_uninitialized
);
NEXT_PASS
(
pass_dse
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_tail_calls
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_uncprop
);
NEXT_PASS
(
pass_del_ssa
);
NEXT_PASS
(
pass_nrv
);
NEXT_PASS
(
pass_mark_used_blocks
);
NEXT_PASS
(
pass_cleanup_cfg_post_optimizing
);
}
NEXT_PASS
(
pass_warn_function_noreturn
);
NEXT_PASS
(
pass_warn_function_noreturn
);
NEXT_PASS
(
pass_free_datastructures
);
NEXT_PASS
(
pass_free_datastructures
);
NEXT_PASS
(
pass_mudflap_2
);
NEXT_PASS
(
pass_mudflap_2
);
NEXT_PASS
(
pass_free_cfg_annotations
);
NEXT_PASS
(
pass_free_cfg_annotations
);
NEXT_PASS
(
pass_expand
);
NEXT_PASS
(
pass_expand
);
NEXT_PASS
(
pass_rest_of_compilation
);
NEXT_PASS
(
pass_rest_of_compilation
);
{
struct
tree_opt_pass
**
p
=
&
pass_rest_of_compilation
.
sub
;
NEXT_PASS
(
pass_init_function
);
NEXT_PASS
(
pass_jump
);
NEXT_PASS
(
pass_insn_locators_initialize
);
NEXT_PASS
(
pass_rtl_eh
);
NEXT_PASS
(
pass_initial_value_sets
);
NEXT_PASS
(
pass_unshare_all_rtl
);
NEXT_PASS
(
pass_instantiate_virtual_regs
);
NEXT_PASS
(
pass_jump2
);
NEXT_PASS
(
pass_lower_subreg
);
NEXT_PASS
(
pass_cse
);
NEXT_PASS
(
pass_rtl_fwprop
);
NEXT_PASS
(
pass_gcse
);
NEXT_PASS
(
pass_jump_bypass
);
NEXT_PASS
(
pass_rtl_ifcvt
);
NEXT_PASS
(
pass_tracer
);
/* Perform loop optimizations. It might be better to do them a bit
sooner, but we want the profile feedback to work more
efficiently. */
NEXT_PASS
(
pass_loop2
);
{
struct
tree_opt_pass
**
p
=
&
pass_loop2
.
sub
;
NEXT_PASS
(
pass_rtl_loop_init
);
NEXT_PASS
(
pass_rtl_move_loop_invariants
);
NEXT_PASS
(
pass_rtl_unswitch
);
NEXT_PASS
(
pass_rtl_unroll_and_peel_loops
);
NEXT_PASS
(
pass_rtl_doloop
);
NEXT_PASS
(
pass_rtl_loop_done
);
*
p
=
NULL
;
}
NEXT_PASS
(
pass_web
);
NEXT_PASS
(
pass_cse2
);
NEXT_PASS
(
pass_rtl_fwprop_addr
);
NEXT_PASS
(
pass_life
);
NEXT_PASS
(
pass_combine
);
NEXT_PASS
(
pass_if_after_combine
);
NEXT_PASS
(
pass_partition_blocks
);
NEXT_PASS
(
pass_regmove
);
NEXT_PASS
(
pass_split_all_insns
);
NEXT_PASS
(
pass_lower_subreg2
);
NEXT_PASS
(
pass_mode_switching
);
NEXT_PASS
(
pass_see
);
NEXT_PASS
(
pass_recompute_reg_usage
);
NEXT_PASS
(
pass_sms
);
NEXT_PASS
(
pass_sched
);
NEXT_PASS
(
pass_local_alloc
);
NEXT_PASS
(
pass_global_alloc
);
NEXT_PASS
(
pass_postreload
);
{
struct
tree_opt_pass
**
p
=
&
pass_postreload
.
sub
;
NEXT_PASS
(
pass_postreload_cse
);
NEXT_PASS
(
pass_gcse2
);
NEXT_PASS
(
pass_flow2
);
NEXT_PASS
(
pass_rtl_seqabstr
);
NEXT_PASS
(
pass_stack_adjustments
);
NEXT_PASS
(
pass_peephole2
);
NEXT_PASS
(
pass_if_after_reload
);
NEXT_PASS
(
pass_regrename
);
NEXT_PASS
(
pass_reorder_blocks
);
NEXT_PASS
(
pass_branch_target_load_optimize
);
NEXT_PASS
(
pass_leaf_regs
);
NEXT_PASS
(
pass_sched2
);
NEXT_PASS
(
pass_split_before_regstack
);
NEXT_PASS
(
pass_stack_regs
);
NEXT_PASS
(
pass_compute_alignments
);
NEXT_PASS
(
pass_duplicate_computed_gotos
);
NEXT_PASS
(
pass_variable_tracking
);
NEXT_PASS
(
pass_free_cfg
);
NEXT_PASS
(
pass_machine_reorg
);
NEXT_PASS
(
pass_cleanup_barriers
);
NEXT_PASS
(
pass_delay_slots
);
NEXT_PASS
(
pass_split_for_shorten_branches
);
NEXT_PASS
(
pass_convert_to_eh_region_ranges
);
NEXT_PASS
(
pass_shorten_branches
);
NEXT_PASS
(
pass_set_nothrow_function_flags
);
NEXT_PASS
(
pass_final
);
}
}
NEXT_PASS
(
pass_clean_state
);
NEXT_PASS
(
pass_clean_state
);
*
p
=
NULL
;
*
p
=
NULL
;
p
=
&
pass_all_optimizations
.
sub
;
NEXT_PASS
(
pass_create_structure_vars
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_return_slot
);
NEXT_PASS
(
pass_rename_ssa_copies
);
/* Initial scalar cleanups. */
NEXT_PASS
(
pass_ccp
);
NEXT_PASS
(
pass_fre
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_merge_phi
);
NEXT_PASS
(
pass_vrp
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_tail_recursion
);
NEXT_PASS
(
pass_profile
);
NEXT_PASS
(
pass_ch
);
NEXT_PASS
(
pass_stdarg
);
NEXT_PASS
(
pass_lower_complex
);
NEXT_PASS
(
pass_sra
);
/* FIXME: SRA may generate arbitrary gimple code, exposing new
aliased and call-clobbered variables. As mentioned below,
pass_may_alias should be a TODO item. */
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_reassoc
);
NEXT_PASS
(
pass_dce
);
NEXT_PASS
(
pass_dse
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_object_sizes
);
NEXT_PASS
(
pass_store_ccp
);
NEXT_PASS
(
pass_store_copy_prop
);
NEXT_PASS
(
pass_fold_builtins
);
NEXT_PASS
(
pass_cse_sincos
);
/* FIXME: May alias should a TODO but for 4.0.0,
we add may_alias right after fold builtins
which can create arbitrary GIMPLE. */
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_split_crit_edges
);
NEXT_PASS
(
pass_pre
);
NEXT_PASS
(
pass_may_alias
);
NEXT_PASS
(
pass_sink_code
);
NEXT_PASS
(
pass_tree_loop
);
NEXT_PASS
(
pass_cse_reciprocals
);
NEXT_PASS
(
pass_reassoc
);
NEXT_PASS
(
pass_vrp
);
NEXT_PASS
(
pass_dominator
);
/* The only const/copy propagation opportunities left after
DOM should be due to degenerate PHI nodes. So rather than
run the full propagators, run a specialized pass which
only examines PHIs to discover const/copy propagation
opportunities. */
NEXT_PASS
(
pass_phi_only_cprop
);
NEXT_PASS
(
pass_cd_dce
);
/* FIXME: If DCE is not run before checking for uninitialized uses,
we may get false warnings (e.g., testsuite/gcc.dg/uninit-5.c).
However, this also causes us to misdiagnose cases that should be
real warnings (e.g., testsuite/gcc.dg/pr18501.c).
To fix the false positives in uninit-5.c, we would have to
account for the predicates protecting the set and the use of each
variable. Using a representation like Gated Single Assignment
may help. */
NEXT_PASS
(
pass_late_warn_uninitialized
);
NEXT_PASS
(
pass_dse
);
NEXT_PASS
(
pass_forwprop
);
NEXT_PASS
(
pass_phiopt
);
NEXT_PASS
(
pass_tail_calls
);
NEXT_PASS
(
pass_rename_ssa_copies
);
NEXT_PASS
(
pass_uncprop
);
NEXT_PASS
(
pass_del_ssa
);
NEXT_PASS
(
pass_nrv
);
NEXT_PASS
(
pass_mark_used_blocks
);
NEXT_PASS
(
pass_cleanup_cfg_post_optimizing
);
*
p
=
NULL
;
p
=
&
pass_tree_loop
.
sub
;
NEXT_PASS
(
pass_tree_loop_init
);
NEXT_PASS
(
pass_copy_prop
);
NEXT_PASS
(
pass_lim
);
NEXT_PASS
(
pass_tree_unswitch
);
NEXT_PASS
(
pass_scev_cprop
);
NEXT_PASS
(
pass_empty_loop
);
NEXT_PASS
(
pass_record_bounds
);
NEXT_PASS
(
pass_linear_transform
);
NEXT_PASS
(
pass_iv_canon
);
NEXT_PASS
(
pass_if_conversion
);
NEXT_PASS
(
pass_vectorize
);
/* NEXT_PASS (pass_may_alias) cannot be done again because the
vectorizer creates alias relations that are not supported by
pass_may_alias. */
NEXT_PASS
(
pass_complete_unroll
);
NEXT_PASS
(
pass_loop_prefetch
);
NEXT_PASS
(
pass_iv_optimize
);
NEXT_PASS
(
pass_tree_loop_done
);
*
p
=
NULL
;
p
=
&
pass_vectorize
.
sub
;
NEXT_PASS
(
pass_lower_vector_ssa
);
NEXT_PASS
(
pass_dce_loop
);
*
p
=
NULL
;
p
=
&
pass_loop2
.
sub
;
NEXT_PASS
(
pass_rtl_loop_init
);
NEXT_PASS
(
pass_rtl_move_loop_invariants
);
NEXT_PASS
(
pass_rtl_unswitch
);
NEXT_PASS
(
pass_rtl_unroll_and_peel_loops
);
NEXT_PASS
(
pass_rtl_doloop
);
NEXT_PASS
(
pass_rtl_loop_done
);
*
p
=
NULL
;
p
=
&
pass_rest_of_compilation
.
sub
;
NEXT_PASS
(
pass_init_function
);
NEXT_PASS
(
pass_jump
);
NEXT_PASS
(
pass_insn_locators_initialize
);
NEXT_PASS
(
pass_rtl_eh
);
NEXT_PASS
(
pass_initial_value_sets
);
NEXT_PASS
(
pass_unshare_all_rtl
);
NEXT_PASS
(
pass_instantiate_virtual_regs
);
NEXT_PASS
(
pass_jump2
);
NEXT_PASS
(
pass_lower_subreg
);
NEXT_PASS
(
pass_cse
);
NEXT_PASS
(
pass_rtl_fwprop
);
NEXT_PASS
(
pass_gcse
);
NEXT_PASS
(
pass_jump_bypass
);
NEXT_PASS
(
pass_rtl_ifcvt
);
NEXT_PASS
(
pass_tracer
);
/* Perform loop optimizations. It might be better to do them a bit
sooner, but we want the profile feedback to work more
efficiently. */
NEXT_PASS
(
pass_loop2
);
NEXT_PASS
(
pass_web
);
NEXT_PASS
(
pass_cse2
);
NEXT_PASS
(
pass_rtl_fwprop_addr
);
NEXT_PASS
(
pass_life
);
NEXT_PASS
(
pass_combine
);
NEXT_PASS
(
pass_if_after_combine
);
NEXT_PASS
(
pass_partition_blocks
);
NEXT_PASS
(
pass_regmove
);
NEXT_PASS
(
pass_split_all_insns
);
NEXT_PASS
(
pass_lower_subreg2
);
NEXT_PASS
(
pass_mode_switching
);
NEXT_PASS
(
pass_see
);
NEXT_PASS
(
pass_recompute_reg_usage
);
NEXT_PASS
(
pass_sms
);
NEXT_PASS
(
pass_sched
);
NEXT_PASS
(
pass_local_alloc
);
NEXT_PASS
(
pass_global_alloc
);
NEXT_PASS
(
pass_postreload
);
*
p
=
NULL
;
p
=
&
pass_postreload
.
sub
;
NEXT_PASS
(
pass_postreload_cse
);
NEXT_PASS
(
pass_gcse2
);
NEXT_PASS
(
pass_flow2
);
NEXT_PASS
(
pass_rtl_seqabstr
);
NEXT_PASS
(
pass_stack_adjustments
);
NEXT_PASS
(
pass_peephole2
);
NEXT_PASS
(
pass_if_after_reload
);
NEXT_PASS
(
pass_regrename
);
NEXT_PASS
(
pass_reorder_blocks
);
NEXT_PASS
(
pass_branch_target_load_optimize
);
NEXT_PASS
(
pass_leaf_regs
);
NEXT_PASS
(
pass_sched2
);
NEXT_PASS
(
pass_split_before_regstack
);
NEXT_PASS
(
pass_stack_regs
);
NEXT_PASS
(
pass_compute_alignments
);
NEXT_PASS
(
pass_duplicate_computed_gotos
);
NEXT_PASS
(
pass_variable_tracking
);
NEXT_PASS
(
pass_free_cfg
);
NEXT_PASS
(
pass_machine_reorg
);
NEXT_PASS
(
pass_cleanup_barriers
);
NEXT_PASS
(
pass_delay_slots
);
NEXT_PASS
(
pass_split_for_shorten_branches
);
NEXT_PASS
(
pass_convert_to_eh_region_ranges
);
NEXT_PASS
(
pass_shorten_branches
);
NEXT_PASS
(
pass_set_nothrow_function_flags
);
NEXT_PASS
(
pass_final
);
*
p
=
NULL
;
#undef NEXT_PASS
#undef NEXT_PASS
/* Register the passes with the tree dump code. */
/* Register the passes with the tree dump code. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment