public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/44563] GCC uses a lot of RAM when compiling a large numbers of functions Date: Tue, 10 Mar 2015 11:54:00 -0000 [thread overview] Message-ID: <bug-44563-4-uAAB29zSrC@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-44563-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563 --- Comment #23 from Richard Biener <rguenth at gcc dot gnu.org> --- Funnily apart from the IPA inline summary updating issue the next important time-hog is basic-block splitting we do for inlining a call. This is because split_block moves the tail of the block to a new one (and we process inlines from BB head to BB start). And thus we hit gimple_set_bb () quite hard (quadratic in the number of calls in main() which is composed of a single BB). So in theory it's better to work backwards from the BB - but that doesn't play well with catching all BBs in gimple_expand_calls_inline and its caller. We are talking about 8% of compile-time spent in gimple_set_bb here (according to callgrind). It's bad that splitting blocks is O(n) (but that stmt -> bb pointer saves us in other places). If we'd know that we perform multiple inlinings in a block we could use a special "split block" function that splits the block in multiple places at once, avoiding the quadraticness seen here. Basically first split all calls that we want to inline to separate blocks and then do the actual inlining run.
next prev parent reply other threads:[~2015-03-10 11:54 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <bug-44563-4@http.gcc.gnu.org/bugzilla/> 2010-12-12 23:55 ` hubicka at gcc dot gnu.org 2010-12-13 0:58 ` hubicka at gcc dot gnu.org 2010-12-13 1:00 ` hubicka at gcc dot gnu.org 2010-12-13 1:07 ` hubicka at gcc dot gnu.org 2010-12-13 1:17 ` hubicka at gcc dot gnu.org 2010-12-13 1:47 ` hubicka at gcc dot gnu.org 2010-12-13 13:22 ` hubicka at gcc dot gnu.org 2010-12-17 0:08 ` hubicka at gcc dot gnu.org 2015-03-07 0:22 ` hubicka at gcc dot gnu.org 2015-03-09 9:36 ` rguenth at gcc dot gnu.org 2015-03-09 11:33 ` rguenth at gcc dot gnu.org 2015-03-09 15:26 ` rguenth at gcc dot gnu.org 2015-03-09 15:36 ` rguenth at gcc dot gnu.org 2015-03-10 4:55 ` hubicka at ucw dot cz 2015-03-10 8:26 ` rguenth at gcc dot gnu.org 2015-03-10 8:35 ` rguenther at suse dot de 2015-03-10 11:54 ` rguenth at gcc dot gnu.org [this message] 2015-03-10 12:03 ` rguenth at gcc dot gnu.org 2015-03-10 12:31 ` jakub at gcc dot gnu.org 2015-03-10 12:44 ` rguenth at gcc dot gnu.org 2015-03-10 12:51 ` rguenther at suse dot de 2015-03-10 13:19 ` rguenth at gcc dot gnu.org 2015-03-12 15:09 ` rguenth at gcc dot gnu.org 2015-03-13 8:43 ` [Bug ipa/44563] " rguenth at gcc dot gnu.org 2015-03-13 8:47 ` rguenth at gcc dot gnu.org 2015-03-13 8:53 ` rguenth at gcc dot gnu.org 2015-03-13 8:55 ` rguenth at gcc dot gnu.org 2015-03-16 0:07 ` hubicka at ucw dot cz 2024-02-16 13:52 ` rguenth at gcc dot gnu.org 2010-06-17 4:10 [Bug c/44563] New: " jvoss at altsci dot com 2010-06-17 4:14 ` [Bug tree-optimization/44563] " jvoss at altsci dot com 2010-06-17 10:37 ` rguenth at gcc dot gnu dot org 2010-06-17 10:45 ` rguenth at gcc dot gnu dot org 2010-06-17 12:28 ` jakub at gcc dot gnu dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-44563-4-uAAB29zSrC@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).