summaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 1dd9da1619d..b5e2930c842 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -481,7 +481,6 @@ decode_options (unsigned int argc, const char **argv)
if (optimize >= 1)
{
flag_defer_pop = 1;
- flag_thread_jumps = 1;
#ifdef DELAY_SLOTS
flag_delayed_branch = 1;
#endif
@@ -510,14 +509,12 @@ decode_options (unsigned int argc, const char **argv)
the condition is satisfied in the first iteration and therefore
to eliminate it. Jump threading handles these cases now. */
flag_tree_ch = 1;
-
- /* PRE tends to generate bigger code. */
- flag_tree_pre = 1;
}
}
if (optimize >= 2)
{
+ flag_thread_jumps = 1;
flag_crossjumping = 1;
flag_optimize_sibling_calls = 1;
flag_cse_follow_jumps = 1;
@@ -540,6 +537,12 @@ decode_options (unsigned int argc, const char **argv)
flag_reorder_blocks = 1;
flag_reorder_functions = 1;
flag_unit_at_a_time = 1;
+
+ if (!optimize_size)
+ {
+ /* PRE tends to generate bigger code. */
+ flag_tree_pre = 1;
+ }
}
if (optimize >= 3)