public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/10675: Compile time increases quadratically with struct size
@ 2003-05-12  3:32 rth
       [not found] ` <E19FLRF-0005HF-00@hzoli.austin.ibm.com>
  0 siblings, 1 reply; 2+ messages in thread
From: rth @ 2003-05-12  3:32 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, hzoli, rth

Synopsis: Compile time increases quadratically with struct size

State-Changed-From-To: analyzed->closed
State-Changed-By: rth
State-Changed-When: Mon May 12 03:32:46 2003
State-Changed-Why:
    http://gcc.gnu.org/ml/gcc-patches/2003-05/msg00989.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10675


^ permalink raw reply	[flat|nested] 2+ messages in thread

* c++/10760: Compile time increases quadratically with struct size
       [not found] ` <E19FLRF-0005HF-00@hzoli.austin.ibm.com>
@ 2003-05-12 22:46   ` hzoli
  0 siblings, 0 replies; 2+ messages in thread
From: hzoli @ 2003-05-12 22:46 UTC (permalink / raw)
  To: gcc-gnats, debian-gcc; +Cc: rth


>Number:         10760
>Category:       c++
>Synopsis:       Compile time increases quadratically with struct size
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 12 22:46:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Zoltan Hidvegi
>Release:        gcc version 3.3 20030512 (prerelease)
>Organization:
>Environment:
System: x86/Linux & PowerPC/AIX

>Description:
Name lookups for struct members use linear search, which can result in
quadratic compile time increase.  See also c/10675:
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10675
http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg01072.html

This happens in both c and c++, but I can only specify one category.

>How-To-Repeat:
The following is a shell script that will generate a struct with a
given number of members and a functions that assings zero to all
members.

------- BEGIN biggen.sh -------------
#! /bin/sh
let i=0
echo 'struct foo {'
while [ "$i" -lt "$1" ]
do
    echo "    int i_$((i=i+1));"
done
echo '};'
#echo 'struct foo f;'

let i=0
echo 'void init_foo(struct foo *p) {'
while [ "$i" -lt "$1" ]
do
    echo "    p->i_$((i=i+1)) = 0;"
done
echo '}'
--------- END biggen.sh -------------

Run it like this:
./biggen.sh 10000 > big.C; time g++ -c big.c
Change the number from 10000 and see how the compile time is
affected.  Also watch the memory usage, e.g. with 25000 members it
needs 55M, but the memory usage scales linearly.

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-05-12 22:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-12  3:32 c/10675: Compile time increases quadratically with struct size rth
     [not found] ` <E19FLRF-0005HF-00@hzoli.austin.ibm.com>
2003-05-12 22:46   ` c++/10760: " hzoli

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).