diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-30 10:38:55 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-30 10:38:55 +0000 |
commit | 7baffbd38d2e4687a7d7f8e5382d82c778567231 (patch) | |
tree | bd32e842f1dc6dd55db511672ed8034ae7e0f1f4 /gcc/bb-reorder.c | |
parent | b9825313eeb5bc4ec94af5e600a18acf8d0f9c3b (diff) | |
download | gcc-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.c | 10 |
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); |