This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/9805] optimisation of largish array constant containing strings takes forever(?) and consumes very large amounts of memory
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Dec 2003 19:03:46 -0000
- Subject: [Bug optimization/9805] optimisation of largish array constant containing strings takes forever(?) and consumes very large amounts of memory
- References: <20030222190600.9805.tilps@hotmail.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2003-12-02 19:03 -------
This is fixed on the mainline (20031201) at least on powerpc-apple-darwin and i686-pc-linux so
assuming fixed.
tin:~/src/gnu/gcctest>gcc -ftime-report pr9805.cc -S
Execution times (seconds)
garbage collection : 0.09 (10%) usr 0.00 ( 0%) sys 0.09 ( 7%) wall
cfg cleanup : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
life analysis : 0.02 ( 2%) usr 0.00 ( 0%) sys 0.02 ( 2%) wall
life info update : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
preprocessing : 0.08 ( 9%) usr 0.04 (14%) sys 0.12 (10%) wall
parser : 0.23 (26%) usr 0.11 (39%) sys 0.34 (27%) wall
name lookup : 0.21 (23%) usr 0.12 (43%) sys 0.33 (26%) wall
expand : 0.03 ( 3%) usr 0.00 ( 0%) sys 0.03 ( 2%) wall
varconst : 0.03 ( 3%) usr 0.00 ( 0%) sys 0.03 ( 2%) wall
integration : 0.02 ( 2%) usr 0.00 ( 0%) sys 0.02 ( 2%) wall
local alloc : 0.02 ( 2%) usr 0.00 ( 0%) sys 0.02 ( 2%) wall
global alloc : 0.09 (10%) usr 0.00 ( 0%) sys 0.09 ( 7%) wall
flow 2 : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
shorten branches : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
final : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
rest of compilation : 0.01 ( 1%) usr 0.01 ( 4%) sys 0.02 ( 2%) wall
TOTAL : 0.90 0.28 1.25
tin:~/src/gnu/gcctest>gcc -ftime-report pr9805.cc -S -O
Execution times (seconds)
garbage collection : 0.10 ( 6%) usr 0.00 ( 0%) sys 0.10 ( 5%) wall
cfg construction : 0.04 ( 3%) usr 0.00 ( 0%) sys 0.04 ( 2%) wall
cfg cleanup : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
trivially dead code : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
life analysis : 0.11 ( 7%) usr 0.00 ( 0%) sys 0.11 ( 6%) wall
life info update : 0.03 ( 2%) usr 0.00 ( 0%) sys 0.03 ( 2%) wall
alias analysis : 0.02 ( 1%) usr 0.01 ( 4%) sys 0.03 ( 2%) wall
preprocessing : 0.08 ( 5%) usr 0.02 ( 8%) sys 0.10 ( 5%) wall
parser : 0.32 (20%) usr 0.12 (48%) sys 0.44 (22%) wall
name lookup : 0.15 (10%) usr 0.10 (40%) sys 0.25 (13%) wall
expand : 0.08 ( 5%) usr 0.00 ( 0%) sys 0.08 ( 4%) wall
varconst : 0.04 ( 3%) usr 0.00 ( 0%) sys 0.04 ( 2%) wall
integration : 0.10 ( 6%) usr 0.00 ( 0%) sys 0.10 ( 5%) wall
CSE : 0.05 ( 3%) usr 0.00 ( 0%) sys 0.05 ( 3%) wall
loop analysis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
branch prediction : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
combiner : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.06 ( 3%) wall
if-conversion : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
local alloc : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
global alloc : 0.17 (11%) usr 0.00 ( 0%) sys 0.17 ( 9%) wall
reload CSE regs : 0.04 ( 3%) usr 0.00 ( 0%) sys 0.04 ( 2%) wall
flow 2 : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
if-conversion 2 : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
rename registers : 0.03 ( 2%) usr 0.00 ( 0%) sys 0.03 ( 2%) wall
shorten branches : 0.01 ( 1%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
final : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
rest of compilation : 0.04 ( 3%) usr 0.00 ( 0%) sys 0.04 ( 2%) wall
TOTAL : 1.57 0.25 1.97
tin:~/src/gnu/gcctest>gcc -ftime-report pr9805.cc -S -O3
Execution times (seconds)
garbage collection : 0.22 ( 9%) usr 0.00 ( 0%) sys 0.22 ( 8%) wall
callgraph construction: 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
cfg construction : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
cfg cleanup : 0.04 ( 2%) usr 0.00 ( 0%) sys 0.04 ( 1%) wall
trivially dead code : 0.05 ( 2%) usr 0.00 ( 0%) sys 0.05 ( 2%) wall
life analysis : 0.08 ( 3%) usr 0.00 ( 0%) sys 0.08 ( 3%) wall
life info update : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
alias analysis : 0.06 ( 3%) usr 0.01 ( 4%) sys 0.07 ( 3%) wall
register scan : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
preprocessing : 0.06 ( 2%) usr 0.04 (17%) sys 0.10 ( 4%) wall
parser : 0.42 (18%) usr 0.04 (17%) sys 0.47 (17%) wall
name lookup : 0.15 ( 6%) usr 0.11 (46%) sys 0.25 ( 9%) wall
expand : 0.12 ( 5%) usr 0.01 ( 4%) sys 0.14 ( 5%) wall
varconst : 0.03 ( 1%) usr 0.01 ( 4%) sys 0.04 ( 1%) wall
integration : 0.14 ( 6%) usr 0.00 ( 0%) sys 0.14 ( 5%) wall
jump : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
CSE : 0.11 ( 5%) usr 0.00 ( 0%) sys 0.11 ( 4%) wall
global CSE : 0.10 ( 4%) usr 0.01 ( 4%) sys 0.11 ( 4%) wall
loop analysis : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
bypass jumps : 0.04 ( 2%) usr 0.00 ( 0%) sys 0.04 ( 1%) wall
web : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
CSE 2 : 0.05 ( 2%) usr 0.00 ( 0%) sys 0.05 ( 2%) wall
branch prediction : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
combiner : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
if-conversion : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
regmove : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
local alloc : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
global alloc : 0.11 ( 5%) usr 0.00 ( 0%) sys 0.11 ( 4%) wall
reload CSE regs : 0.05 ( 2%) usr 0.00 ( 0%) sys 0.05 ( 2%) wall
flow 2 : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
if-conversion 2 : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
peephole 2 : 0.02 ( 1%) usr 0.00 ( 0%) sys 0.02 ( 1%) wall
rename registers : 0.05 ( 2%) usr 0.00 ( 0%) sys 0.05 ( 2%) wall
scheduling 2 : 0.11 ( 5%) usr 0.01 ( 4%) sys 0.14 ( 5%) wall
shorten branches : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
final : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
rest of compilation : 0.03 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 1%) wall
TOTAL : 2.40 0.24 2.76
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Target Milestone|--- |3.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9805