From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32234 invoked by alias); 19 Sep 2012 14:24:59 -0000 Received: (qmail 32223 invoked by uid 22791); 19 Sep 2012 14:24:58 -0000 X-SWARE-Spam-Status: No, hits=-3.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 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; Wed, 19 Sep 2012 14:24:46 +0000 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/54627] New: VRP uses lots of memory and compile-time Date: Wed, 19 Sep 2012 14:24:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new 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: rguenth at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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: 2012-09/txt/msg01445.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54627 Bug #: 54627 Summary: VRP uses lots of memory and compile-time Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: compile-time-hog, memory-hog Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned@gcc.gnu.org ReportedBy: rguenth@gcc.gnu.org Part of it is due to equivalence set bitmaps becoming huge (and their inefficient computation). equivalences are only used when trying to simplify comparisons (but during iteration). So the only used equivalence bitmaps are for operands of those. equivalences are generated only by asserts and SSA name copies, so they can be computed up-front and shouldn't change (apart from handling of non-executable edges in PHI nodes) during iteration. At least equivalence processing can be ignored for SSA name chains not leading up to a condition operand.