summaryrefslogtreecommitdiff
path: root/gcc/bb-reorder.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-30 10:38:55 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-30 10:38:55 +0000
commit7baffbd38d2e4687a7d7f8e5382d82c778567231 (patch)
treebd32e842f1dc6dd55db511672ed8034ae7e0f1f4 /gcc/bb-reorder.c
parentb9825313eeb5bc4ec94af5e600a18acf8d0f9c3b (diff)
downloadgcc-7baffbd38d2e4687a7d7f8e5382d82c778567231.tar.gz
* parse.c (parse_interface): Silence uninitialized var warning.
* postreload-gcse.c (gate_handle_gcse2): Disable for functions optimized for speed. * final.c (compute_alignments): Use optimize_bb_for_size_p. * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p. * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set, flag_gcse_after_reload_set): New static vars. (common_handle_option): Enable those flags for profile-use. (decode_options): Remove optimize_size flags that are handled on higher granuality. * tree-vectorizer.c (vectorize_loops): Use optimize_loop_nest_for_speed_p. * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p. * tree-predcom.c (tree_predictive_commoning): Use optimize_loop_for_speed_p. * varasm.c (assemble_start_function): Use optimize_function_for_speed_p. * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise. * predict.c (optimize_loop_for_speed_p): Fix walk. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139801 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/bb-reorder.c')
-rw-r--r--gcc/bb-reorder.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 3bf2dc72c7e..b636c1e3a1d 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -2225,7 +2225,15 @@ rest_of_handle_reorder_blocks (void)
splitting possibly introduced more crossjumping opportunities. */
cfg_layout_initialize (CLEANUP_EXPENSIVE);
- if (flag_reorder_blocks || flag_reorder_blocks_and_partition)
+ if ((flag_reorder_blocks || flag_reorder_blocks_and_partition)
+ /* Don't reorder blocks when optimizing for size because extra jump insns may
+ be created; also barrier may create extra padding.
+
+ More correctly we should have a block reordering mode that tried to
+ minimize the combined size of all the jumps. This would more or less
+ automatically remove extra jumps, but would also try to use more short
+ jumps instead of long jumps. */
+ && optimize_function_for_speed_p (cfun))
{
reorder_basic_blocks ();
cleanup_cfg (CLEANUP_EXPENSIVE);