Bug 17436 - [4.0 regression] Huge memory use regression
Summary: [4.0 regression] Huge memory use regression
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.0.0
: P2 critical
Target Milestone: 4.0.0
Assignee: Richard Henderson
URL:
Keywords: memory-hog
Depends on:
Blocks:
 
Reported: 2004-09-12 14:58 UTC by Falk Hueffner
Modified: 2004-11-06 15:43 UTC (History)
1 user (show)

See Also:
Host: alphaev68-unknown-linux-gnu
Target: alphaev68-unknown-linux-gnu
Build: alphaev68-unknown-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2004-09-13 06:51:37


Attachments
test case (92.35 KB, application/octet-stream)
2004-09-12 14:58 UTC, Falk Hueffner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Falk Hueffner 2004-09-12 14:58:22 UTC
The attached test case from the Linux kernel takes about 28m to compile with
gcc 3.4 at -O2, and about 657m with gcc 4.0.0 20040911.
Comment 1 Falk Hueffner 2004-09-12 14:58:58 UTC
Created attachment 7105 [details]
test case
Comment 2 Richard Henderson 2004-09-13 06:51:37 UTC
[13]    84.9   18.14    6.05       6+89284061 type_contains_placeholder_p [13]
                3.60    0.00 23746334/23746334     value_member [15]
                0.61    1.83 13692195/13708332     tree_cons_stat [24]
                0.00    0.00       1/4554        build_tree_list_stat [767]
                             89284061             type_contains_placeholder_p [13]

Can you say, "OMG"?  I knew you could.

Testing a patch.
Comment 3 GCC Commits 2004-09-13 20:27:28 UTC
Subject: Bug 17436

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2004-09-13 20:27:09

Modified files:
	gcc            : ChangeLog tree.c tree.h 

Log message:
	PR 17436
	* tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
	(tree_type): Replace spare with contains_placeholder_bits.
	(type_contains_placeholder_1): Rename from type_contains_placeholder_p,
	make static.  Remove seen_types list.
	(type_contains_placeholder_p): New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5424&r2=2.5425
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.c.diff?cvsroot=gcc&r1=1.427&r2=1.428
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&r1=1.620&r2=1.621

Comment 4 Richard Henderson 2004-09-13 20:46:07 UTC
Fixed.