aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/opts.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e9b7dbc..2a0fbb7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
+
+ * opts.c (decode_options): Do function inlining with very small
+ max-inline-insns-* parameters when optimizing for size.
+
2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
* config/i386/i386.h (TARGET_NOCONA): New macro.
diff --git a/gcc/opts.c b/gcc/opts.c
index f21cf25..b5cb3d9 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -594,6 +594,15 @@ decode_options (unsigned int argc, const char **argv)
flag_reorder_blocks = 0;
}
+ if (optimize_size)
+ {
+ /* Inlining of very small functions usually reduces total size. */
+ set_param_value ("max-inline-insns-single", 5);
+ set_param_value ("max-inline-insns-auto", 5);
+ set_param_value ("max-inline-insns-rtl", 10);
+ flag_inline_functions = 1;
+ }
+
/* Initialize whether `char' is signed. */
flag_signed_char = DEFAULT_SIGNED_CHAR;
/* Initialize how much space enums occupy, by default. */