From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25890 invoked by alias); 29 Nov 2004 11:05:04 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 25813 invoked by uid 48); 29 Nov 2004 11:04:59 -0000 Date: Mon, 29 Nov 2004 11:05:00 -0000 Message-ID: <20041129110459.25810.qmail@sourceware.org> From: "rguenth at tat dot physik dot uni-tuebingen dot de" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041128181553.18704.rguenth@tat.physik.uni-tuebingen.de> References: <20041128181553.18704.rguenth@tat.physik.uni-tuebingen.de> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/18704] [4.0 Regression] Inlining limits cause 340% performance regression X-Bugzilla-Reason: CC X-SW-Source: 2004-11/txt/msg03575.txt.bz2 List-Id: ------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2004-11-29 11:04 ------- Looking at the 3.4 branch the defaults for the relevant inlining parameters are the same. So the difference in performance has to be accounted to different tree-node counting (or to differences in the accounting during inlining). As we throttle inlining params if -Os is specified in opts.c: 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); flag_inline_functions = 1; may I suggest to throttle inline-unit-growth there, too (though it shouldn't have an effect with so small max-inline-insns-single). And then provide the documented limit (150) for inline-unit-growth? One may even argue that limiting overall unit growth is not important, as it is already limited by max-inline-insns-* and large-function-*. Also both inline-unit-growth and large-function-growth cause inlining to stop at the threshold leaving one with an unbalanced inlining decision. Why were these (growth) limits invented? Were there some particular testcases that broke down otherwise? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18704