From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19726 invoked by alias); 13 Dec 2010 00:58:21 -0000 Received: (qmail 19717 invoked by uid 22791); 13 Dec 2010 00:58:20 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_TM X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 13 Dec 2010 00:58:15 +0000 From: "hubicka at gcc dot 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 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Keywords: compile-time-hog, memory-hog X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Mon, 13 Dec 2010 00:58:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-12/txt/msg01345.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44563 Jan Hubicka changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at google dot com --- Comment #6 from Jan Hubicka 2010-12-13 00:58:04 UTC --- letting compilation to run longer I get: 3068656 60.0462 cc1 cc1 gsi_for_stmt 1211665 23.7093 cc1 cc1 cgraph_check_inline_limits 396594 7.7604 cc1 cc1 gimple_set_bb 29937 0.5858 libc-2.11.1.so libc-2.11.1.so _IO_vfscanf 23409 0.4581 libc-2.11.1.so libc-2.11.1.so _int_malloc 14539 0.2845 cc1 cc1 gimple_split_block 13307 0.2604 libc-2.11.1.so libc-2.11.1.so memset 9532 0.1865 cc1 cc1 htab_delete 8275 0.1619 cc1 cc1 bitmap_set_bit so gsi_for_stmt nonlinearity kicks in. I guess it is the inliner calling BB split and that calling gsi_for_stmt. We probably can have gsi_split_bb with gsi argument too. I always wondered why Diego did not embed gimple_seq_node_d into gimple statment (we don't have too many statements that would not be living in basic blocks so it would not be wasteful and it would result in better locality walking the lists). In that case gsi_for_stmt would become O(1). Honza