This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[gomp4, 13/23] Slightly change postreload passes
- From: Bernd Schmidt <bernds at codesourcery dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 9 Dec 2013 16:06:35 +0100
- Subject: [gomp4, 13/23] Slightly change postreload passes
- Authentication-results: sourceware.org; auth=none
- References: <52A5D8D4 dot 2030803 at codesourcery dot com>
To be used together with the no_register_allocation hook.
Everything after register allocation is currently in pass_postreload
rather than pass_rest_of_compilation. This seems arbitrary to me, and
for a target that doesn't do register allocation, pass_postreload isn't
run, so the very last few passes (at least reorg and final) need to be
moved up a level.
gcc/
* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
pass_cleanup_barriers, pass_delay_slots,
pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
pass_shorten_branches, pass_est_nothrow_function_flags,
pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
into pass_rest_of_compilation.
------------------------------------------------------------------------
Index: gcc/passes.def
===================================================================
--- gcc/passes.def.orig
+++ gcc/passes.def
@@ -396,19 +396,19 @@ along with GCC; see the file COPYING3.
NEXT_PASS (pass_split_before_regstack);
NEXT_PASS (pass_stack_regs_run);
POP_INSERT_PASSES ()
- NEXT_PASS (pass_compute_alignments);
- 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_dwarf2_frame);
- NEXT_PASS (pass_final);
POP_INSERT_PASSES ()
+ NEXT_PASS (pass_compute_alignments);
+ 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_dwarf2_frame);
+ NEXT_PASS (pass_final);
NEXT_PASS (pass_df_finish);
POP_INSERT_PASSES ()
NEXT_PASS (pass_clean_state);