From f736cb3eedc28efce160effa53403e4b69411427 Mon Sep 17 00:00:00 2001
From: Gabor Loki <loki@inf.u-szeged.hu>
Date: Sat, 3 Apr 2004 00:17:49 +0200
Subject: [PATCH] opts.c (decode_options): Do function inlining with very small
 max-inline-insns-* parameters when...

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.

From-SVN: r80359
---
 gcc/ChangeLog | 5 +++++
 gcc/opts.c    | 9 +++++++++
 2 files changed, 14 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e9b7dbc7960a..2a0fbb720b4d 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 f21cf250d21e..b5cb3d99c0a7 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.  */
-- 
GitLab