This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 24 May 2014 21:47:37 +0000
- Subject: [Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO
- Auto-submitted: auto-generated
- References: <bug-45375-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #211 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Elfhack is rather sensitive to LTO, but it works for me, so this seems like
binutils issue or some elfhack change that happened recently.
I wrote instructions for building firefox with LTO here
http://hubicka.blogspot.ca/2014/04/linktime-optimization-in-gcc-2-firefox.html
Here I am attaching -ftime-report after the symtab hashtable was removed
Execution times (seconds)
phase setup : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
1536 kB ( 0%) ggc
phase opt and generate : 54.29 (58%) usr 1.28 (18%) sys 55.58 (50%) wall
720779 kB (18%) ggc
phase stream in : 33.54 (36%) usr 1.84 (26%) sys 35.39 (32%) wall
3389310 kB (82%) ggc
phase stream out : 6.00 ( 6%) usr 4.02 (56%) sys 19.99 (18%) wall
0 kB ( 0%) ggc
garbage collection : 1.86 ( 2%) usr 0.00 ( 0%) sys 1.86 ( 2%) wall
0 kB ( 0%) ggc
callgraph optimization : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.24 ( 0%) wall
9 kB ( 0%) ggc
ipa dead code removal : 5.70 ( 6%) usr 0.18 ( 3%) sys 6.15 ( 6%) wall
92 kB ( 0%) ggc
ipa inheritance graph : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall
883 kB ( 0%) ggc
ipa virtual call target : 5.58 ( 6%) usr 0.06 ( 1%) sys 5.32 ( 5%) wall
0 kB ( 0%) ggc
ipa devirtualization : 0.13 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall
9201 kB ( 0%) ggc
ipa cp : 2.34 ( 2%) usr 0.21 ( 3%) sys 2.55 ( 2%) wall
223628 kB ( 5%) ggc
ipa inlining heuristics : 26.97 (29%) usr 0.67 ( 9%) sys 27.66 (25%) wall
865791 kB (21%) ggc
ipa comdats : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.21 ( 0%) wall
0 kB ( 0%) ggc
ipa lto gimple in : 0.07 ( 0%) usr 0.11 ( 2%) sys 0.21 ( 0%) wall
0 kB ( 0%) ggc
ipa lto gimple out : 0.46 ( 0%) usr 0.19 ( 3%) sys 0.65 ( 1%) wall
0 kB ( 0%) ggc
ipa lto decl in : 24.76 (26%) usr 1.28 (18%) sys 26.08 (23%) wall
2571773 kB (63%) ggc
ipa lto decl out : 5.45 ( 6%) usr 0.28 ( 4%) sys 5.75 ( 5%) wall
0 kB ( 0%) ggc
ipa lto cgraph I/O : 1.13 ( 1%) usr 0.24 ( 3%) sys 1.38 ( 1%) wall
414551 kB (10%) ggc
ipa lto decl merge : 2.57 ( 3%) usr 0.01 ( 0%) sys 2.58 ( 2%) wall
8227 kB ( 0%) ggc
ipa lto cgraph merge : 1.72 ( 2%) usr 0.00 ( 0%) sys 1.72 ( 2%) wall
12166 kB ( 0%) ggc
whopr wpa : 1.04 ( 1%) usr 0.00 ( 0%) sys 1.04 ( 1%) wall
2 kB ( 0%) ggc
whopr wpa I/O : 0.03 ( 0%) usr 3.55 (50%) sys 13.51 (12%) wall
0 kB ( 0%) ggc
whopr partitioning : 4.97 ( 5%) usr 0.06 ( 1%) sys 5.02 ( 5%) wall
3738 kB ( 0%) ggc
ipa reference : 3.62 ( 4%) usr 0.12 ( 2%) sys 3.75 ( 3%) wall
0 kB ( 0%) ggc
ipa profile : 0.33 ( 0%) usr 0.01 ( 0%) sys 0.33 ( 0%) wall
0 kB ( 0%) ggc
ipa pure const : 3.86 ( 4%) usr 0.01 ( 0%) sys 3.88 ( 3%) wall
0 kB ( 0%) ggc
tree eh : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree CFG cleanup : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
varconst : 0.05 ( 0%) usr 0.16 ( 2%) sys 0.13 ( 0%) wall
0 kB ( 0%) ggc
unaccounted todo : 0.65 ( 1%) usr 0.00 ( 0%) sys 0.64 ( 1%) wall
0 kB ( 0%) ggc
TOTAL : 93.84 7.14 110.98
4111626 kB
there are some improvements in devirtualization performance that used quite few
decl->symbol lookups. (about 20%)