http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #158 from Teresa Johnson <tejohnson at google dot com> 2012-12-12 18:59:56 UTC --- On Wed, Dec 12, 2012 at 3:43 AM, markus at trippelsdorf dot de <gcc-bugzi...@gcc.gnu.org> wrote: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375 > > --- Comment #157 from Markus Trippelsdorf <markus at trippelsdorf dot de> > 2012-12-12 11:43:27 UTC --- > With revision 193740 libxul's size is ~34MB, which is OK. > > (Unfortunately this new ICE happens with yesterdays gcc when linking libxul: > > /var/tmp/mozilla-central/content/base/src/nsDocument.cpp: In member function > ‘CreateRange’: > /var/tmp/mozilla-central/content/base/src/nsDocument.cpp:4999:0: internal > compiler error: in cgraph_mark_address_taken_node, at cgraph.c:1409 > > I will open a new PR for this later.) > > Here are the requested files: > > (I don't know which of the ~3000 gcda files you need, so I've uploaded them > all) > http://www.trippelsdorf.de/gcda_before.tar.bz2 (4MB) > http://www.trippelsdorf.de/gcda_after.tar.bz2 (4MB) Sorry, I should have clarified that any one of them would do (as long as it corresponded to an object file included in the LTO link for the main executable), since the info I need is in the program summary section for the executable, which is duplicated in each of them. > > (-fdump-ipa-inline output) > http://www.trippelsdorf.de/libxul_before.inline.tar.bz2 (100MB) > http://www.trippelsdorf.de/libxul_after.inline.tar.bz2 (68MB, everything > 'till > the ICE hit) With the old heuristics, the hot bb cutoff was: profile_info->sum_max / PARAM_VALUE (HOT_BB_COUNT_FRACTION)) In this case, sum_max is 103439951 and HOT_BB_COUNT_FRACTION was 10000, so the cutoff count was 10343. From the working set computed from the histogram, the 99.9% cutoff count is 320. See the end of this email for the full set of histograms and working sets, but here are the top few working sets: ... hal/Hal.gcda: 96.72%: num counts=30069, min counter=16389 hal/Hal.gcda: 97.50%: num counts=35296, min counter=10241 hal/Hal.gcda: 98.28%: num counts=43669, min counter=6145 hal/Hal.gcda: 99.06%: num counts=59589, min counter=3072 hal/Hal.gcda: 99.90%: num counts=115840, min counter=320 So it looks like you would want a cutoff of 97.5% to get close to what was there before. (Honza, I just made some changes to enable gcov-dump to optionally compute and dump out the working sets from the histogram. I can send this for upstream review as I have wanted this several times.) The much smaller cutoff count is why there are fewer calls marked unlikely and more inlining: $ grep "call is unlikely" before/libxul.so.wpa.049i.inline | wc 442342 4944522 42560600 $ grep "call is unlikely" after/libxul.so.wpa.049i.inline | wc 392683 4349335 37477001 $ grep Inlined before/libxul.so.wpa.049i.inline | grep eliminated Inlined 60432 calls, eliminated 30986 functions $ grep Inlined after/libxul.so.wpa.049i.inline | grep eliminated Inlined 89573 calls, eliminated 28921 functions On thing that is interesting in the above info, and may be contributing to the larger size now, is that there are more inlines, but fewer functions are being eliminated. I'm not sure why that is offhand. It's possible (probable) that inlining heuristics need some retuning to make optimal use of the new cutoffs. We also see additional inlines in some of our large internal apps with the change, but not much increase in binary size, and it sometimes leads to better performance - although we are not as much affected because the google branches were using a much larger HOT_BB_COUNT_FRACTION of 60K already, in order to get more inlining. In this case, it looks like you are getting more inlines but it is apparently performance-neutral? Looking at a graph of the working set data, the number of counters starts increasing super-exponentially as the percentages approach 100%. I've been thinking that it may be useful to find the "knee" of the curve to determine the appropriate cutoff percentage. I'll see if I can make some progress on that. Full histogram/working set data: hal/Hal.gcda: a3000000: 512:PROGRAM_SUMMARY checksum=0x3aa34521 hal/Hal.gcda: counts=2109045, runs=7, sum_all=9749748271, run_max=97136704, sum_max=103439951 hal/Hal.gcda: counter histogram: hal/Hal.gcda: 0: num counts=1824318, min counter=0, cum_counter=0 hal/Hal.gcda: 1: num counts=30727, min counter=1, cum_counter=30727 hal/Hal.gcda: 2: num counts=11646, min counter=2, cum_counter=23292 hal/Hal.gcda: 3: num counts=5414, min counter=3, cum_counter=16242 hal/Hal.gcda: 4: num counts=5156, min counter=4, cum_counter=20624 hal/Hal.gcda: 5: num counts=3379, min counter=5, cum_counter=16895 hal/Hal.gcda: 6: num counts=3674, min counter=6, cum_counter=22044 hal/Hal.gcda: 7: num counts=2310, min counter=7, cum_counter=16170 hal/Hal.gcda: 8: num counts=4756, min counter=8, cum_counter=40330 hal/Hal.gcda: 9: num counts=4725, min counter=10, cum_counter=49265 hal/Hal.gcda: 10: num counts=4256, min counter=12, cum_counter=52450 hal/Hal.gcda: 11: num counts=3424, min counter=14, cum_counter=49760 hal/Hal.gcda: 12: num counts=4936, min counter=16, cum_counter=86713 hal/Hal.gcda: 13: num counts=4025, min counter=20, cum_counter=86217 hal/Hal.gcda: 14: num counts=5271, min counter=24, cum_counter=134994 hal/Hal.gcda: 15: num counts=3052, min counter=28, cum_counter=89797 hal/Hal.gcda: 16: num counts=6812, min counter=32, cum_counter=241575 hal/Hal.gcda: 17: num counts=6269, min counter=40, cum_counter=274778 hal/Hal.gcda: 18: num counts=5652, min counter=48, cum_counter=289677 hal/Hal.gcda: 19: num counts=4240, min counter=56, cum_counter=253391 hal/Hal.gcda: 20: num counts=8321, min counter=64, cum_counter=592920 hal/Hal.gcda: 21: num counts=5824, min counter=80, cum_counter=508559 hal/Hal.gcda: 22: num counts=4846, min counter=96, cum_counter=497364 hal/Hal.gcda: 23: num counts=4014, min counter=112, cum_counter=478449 hal/Hal.gcda: 24: num counts=6460, min counter=128, cum_counter=919926 hal/Hal.gcda: 25: num counts=5253, min counter=160, cum_counter=916231 hal/Hal.gcda: 26: num counts=4072, min counter=192, cum_counter=844827 hal/Hal.gcda: 27: num counts=3544, min counter=224, cum_counter=850637 hal/Hal.gcda: 28: num counts=6143, min counter=256, cum_counter=1750280 hal/Hal.gcda: 29: num counts=4690, min counter=320, cum_counter=1648174 hal/Hal.gcda: 30: num counts=3864, min counter=384, cum_counter=1614077 hal/Hal.gcda: 31: num counts=3377, min counter=448, cum_counter=1616477 hal/Hal.gcda: 32: num counts=5986, min counter=512, cum_counter=3426093 hal/Hal.gcda: 33: num counts=4449, min counter=640, cum_counter=3100174 hal/Hal.gcda: 34: num counts=5339, min counter=768, cum_counter=4479538 hal/Hal.gcda: 35: num counts=3402, min counter=896, cum_counter=3264788 hal/Hal.gcda: 36: num counts=6139, min counter=1024, cum_counter=7017454 hal/Hal.gcda: 37: num counts=4224, min counter=1280, cum_counter=5931630 hal/Hal.gcda: 38: num counts=3957, min counter=1536, cum_counter=6576291 hal/Hal.gcda: 39: num counts=2747, min counter=1792, cum_counter=5236457 hal/Hal.gcda: 40: num counts=4640, min counter=2048, cum_counter=10611270 hal/Hal.gcda: 41: num counts=3733, min counter=2560, cum_counter=10510163 hal/Hal.gcda: 42: num counts=3079, min counter=3072, cum_counter=10242287 hal/Hal.gcda: 43: num counts=2651, min counter=3584, cum_counter=10140728 hal/Hal.gcda: 44: num counts=4434, min counter=4096, cum_counter=20361262 hal/Hal.gcda: 45: num counts=3987, min counter=5121, cum_counter=22720940 hal/Hal.gcda: 46: num counts=2943, min counter=6145, cum_counter=19504640 hal/Hal.gcda: 47: num counts=2334, min counter=7169, cum_counter=17826112 hal/Hal.gcda: 48: num counts=2817, min counter=8193, cum_counter=25598488 hal/Hal.gcda: 49: num counts=2779, min counter=10241, cum_counter=31417188 hal/Hal.gcda: 50: num counts=3033, min counter=12290, cum_counter=40410833 hal/Hal.gcda: 51: num counts=1853, min counter=14340, cum_counter=28478565 hal/Hal.gcda: 52: num counts=2655, min counter=16389, cum_counter=48690364 hal/Hal.gcda: 53: num counts=2445, min counter=20488, cum_counter=55375590 hal/Hal.gcda: 54: num counts=1691, min counter=24592, cum_counter=44944827 hal/Hal.gcda: 55: num counts=1436, min counter=28719, cum_counter=44036063 hal/Hal.gcda: 56: num counts=2533, min counter=32825, cum_counter=92560194 hal/Hal.gcda: 57: num counts=1974, min counter=41047, cum_counter=88298216 hal/Hal.gcda: 58: num counts=1635, min counter=49329, cum_counter=86653692 hal/Hal.gcda: 59: num counts=1131, min counter=57610, cum_counter=69796538 hal/Hal.gcda: 60: num counts=1638, min counter=65856, cum_counter=120165995 hal/Hal.gcda: 61: num counts=1227, min counter=82393, cum_counter=110414350 hal/Hal.gcda: 62: num counts=1420, min counter=98946, cum_counter=152171465 hal/Hal.gcda: 63: num counts=726, min counter=115741, cum_counter=89865259 hal/Hal.gcda: 64: num counts=1249, min counter=132608, cum_counter=184646974 hal/Hal.gcda: 65: num counts=862, min counter=165900, cum_counter=156618404 hal/Hal.gcda: 66: num counts=930, min counter=198695, cum_counter=199922412 hal/Hal.gcda: 67: num counts=628, min counter=232660, cum_counter=156498665 hal/Hal.gcda: 68: num counts=1136, min counter=266317, cum_counter=338816591 hal/Hal.gcda: 69: num counts=736, min counter=333978, cum_counter=267217317 hal/Hal.gcda: 70: num counts=589, min counter=401495, cum_counter=256810939 hal/Hal.gcda: 71: num counts=431, min counter=469085, cum_counter=216371731 hal/Hal.gcda: 72: num counts=581, min counter=536827, cum_counter=351453204 hal/Hal.gcda: 73: num counts=387, min counter=672090, cum_counter=287503062 hal/Hal.gcda: 74: num counts=345, min counter=811897, cum_counter=302673649 hal/Hal.gcda: 75: num counts=246, min counter=951474, cum_counter=250577118 hal/Hal.gcda: 76: num counts=315, min counter=1084378, cum_counter=382079125 hal/Hal.gcda: 77: num counts=224, min counter=1362634, cum_counter=336536846 hal/Hal.gcda: 78: num counts=142, min counter=1643302, cum_counter=252854048 hal/Hal.gcda: 79: num counts=104, min counter=1925957, cum_counter=215119385 hal/Hal.gcda: 80: num counts=131, min counter=2211770, cum_counter=321748834 hal/Hal.gcda: 81: num counts=123, min counter=2739896, cum_counter=373169753 hal/Hal.gcda: 82: num counts=72, min counter=3277758, cum_counter=253778382 hal/Hal.gcda: 83: num counts=38, min counter=3853957, cum_counter=158229587 hal/Hal.gcda: 84: num counts=59, min counter=4384565, cum_counter=282974111 hal/Hal.gcda: 85: num counts=56, min counter=5467360, cum_counter=340377441 hal/Hal.gcda: 86: num counts=37, min counter=6569721, cum_counter=254677959 hal/Hal.gcda: 87: num counts=17, min counter=7670909, cum_counter=138198211 hal/Hal.gcda: 88: num counts=31, min counter=8797370, cum_counter=300444212 hal/Hal.gcda: 89: num counts=9, min counter=11064352, cum_counter=104597973 hal/Hal.gcda: 90: num counts=5, min counter=13196116, cum_counter=68483280 hal/Hal.gcda: 91: num counts=25, min counter=15471823, cum_counter=405406333 hal/Hal.gcda: 92: num counts=39, min counter=17739191, cum_counter=769153481 hal/Hal.gcda: 93: num counts=1, min counter=23220597, cum_counter=23248710 hal/Hal.gcda: 94: num counts=1, min counter=26834310, cum_counter=26862423 hal/Hal.gcda: 95: num counts=5, min counter=31885437, cum_counter=169003071 hal/Hal.gcda: 96: num counts=1, min counter=33576018, cum_counter=34881284 hal/Hal.gcda: 99: num counts=1, min counter=60798823, cum_counter=60799245 hal/Hal.gcda: 102: num counts=2, min counter=100714244, cum_counter=204154195 hal/Hal.gcda: counter working sets: hal/Hal.gcda: 0.78%: num counts=1, min counter=100714244 hal/Hal.gcda: 1.56%: num counts=2, min counter=100714244 hal/Hal.gcda: 2.34%: num counts=3, min counter=60798823 hal/Hal.gcda: 3.12%: num counts=5, min counter=31885437 hal/Hal.gcda: 3.90%: num counts=7, min counter=31885437 hal/Hal.gcda: 4.68%: num counts=9, min counter=31885437 hal/Hal.gcda: 5.46%: num counts=12, min counter=17739191 hal/Hal.gcda: 6.24%: num counts=17, min counter=17739191 hal/Hal.gcda: 7.02%: num counts=21, min counter=17739191 hal/Hal.gcda: 7.80%: num counts=25, min counter=17739191 hal/Hal.gcda: 8.58%: num counts=29, min counter=17739191 hal/Hal.gcda: 9.36%: num counts=34, min counter=17739191 hal/Hal.gcda: 10.14%: num counts=38, min counter=17739191 hal/Hal.gcda: 10.92%: num counts=42, min counter=17739191 hal/Hal.gcda: 11.70%: num counts=47, min counter=17739191 hal/Hal.gcda: 12.48%: num counts=50, min counter=17739191 hal/Hal.gcda: 13.26%: num counts=51, min counter=15471823 hal/Hal.gcda: 14.04%: num counts=56, min counter=15471823 hal/Hal.gcda: 14.82%: num counts=61, min counter=15471823 hal/Hal.gcda: 15.60%: num counts=66, min counter=15471823 hal/Hal.gcda: 16.38%: num counts=71, min counter=15471823 hal/Hal.gcda: 17.16%: num counts=75, min counter=15471823 hal/Hal.gcda: 17.94%: num counts=80, min counter=13196116 hal/Hal.gcda: 18.72%: num counts=86, min counter=11064352 hal/Hal.gcda: 19.50%: num counts=94, min counter=8797370 hal/Hal.gcda: 20.28%: num counts=102, min counter=8797370 hal/Hal.gcda: 21.06%: num counts=111, min counter=8797370 hal/Hal.gcda: 21.84%: num counts=120, min counter=8797370 hal/Hal.gcda: 22.62%: num counts=126, min counter=7670909 hal/Hal.gcda: 23.40%: num counts=136, min counter=7670909 hal/Hal.gcda: 24.18%: num counts=146, min counter=6569721 hal/Hal.gcda: 24.96%: num counts=158, min counter=6569721 hal/Hal.gcda: 25.74%: num counts=169, min counter=6569721 hal/Hal.gcda: 26.52%: num counts=180, min counter=5467360 hal/Hal.gcda: 27.30%: num counts=194, min counter=5467360 hal/Hal.gcda: 28.08%: num counts=208, min counter=5467360 hal/Hal.gcda: 28.86%: num counts=222, min counter=5467360 hal/Hal.gcda: 29.64%: num counts=230, min counter=5467360 hal/Hal.gcda: 30.42%: num counts=247, min counter=4384565 hal/Hal.gcda: 31.20%: num counts=264, min counter=4384565 hal/Hal.gcda: 31.98%: num counts=281, min counter=4384565 hal/Hal.gcda: 32.76%: num counts=294, min counter=3853957 hal/Hal.gcda: 33.54%: num counts=313, min counter=3853957 hal/Hal.gcda: 34.32%: num counts=331, min counter=3277758 hal/Hal.gcda: 35.10%: num counts=354, min counter=3277758 hal/Hal.gcda: 35.88%: num counts=377, min counter=3277758 hal/Hal.gcda: 36.66%: num counts=399, min counter=3277758 hal/Hal.gcda: 37.44%: num counts=422, min counter=2739896 hal/Hal.gcda: 38.22%: num counts=450, min counter=2739896 hal/Hal.gcda: 39.00%: num counts=477, min counter=2739896 hal/Hal.gcda: 39.78%: num counts=505, min counter=2739896 hal/Hal.gcda: 40.56%: num counts=522, min counter=2739896 hal/Hal.gcda: 41.34%: num counts=554, min counter=2211770 hal/Hal.gcda: 42.12%: num counts=588, min counter=2211770 hal/Hal.gcda: 42.90%: num counts=622, min counter=2211770 hal/Hal.gcda: 43.68%: num counts=653, min counter=2211770 hal/Hal.gcda: 44.46%: num counts=680, min counter=1925957 hal/Hal.gcda: 45.24%: num counts=720, min counter=1925957 hal/Hal.gcda: 46.02%: num counts=757, min counter=1925957 hal/Hal.gcda: 46.80%: num counts=797, min counter=1643302 hal/Hal.gcda: 47.58%: num counts=843, min counter=1643302 hal/Hal.gcda: 48.36%: num counts=890, min counter=1643302 hal/Hal.gcda: 49.14%: num counts=929, min counter=1362634 hal/Hal.gcda: 49.92%: num counts=985, min counter=1362634 hal/Hal.gcda: 50.70%: num counts=1041, min counter=1362634 hal/Hal.gcda: 51.48%: num counts=1097, min counter=1362634 hal/Hal.gcda: 52.26%: num counts=1132, min counter=1084378 hal/Hal.gcda: 53.04%: num counts=1202, min counter=1084378 hal/Hal.gcda: 53.82%: num counts=1272, min counter=1084378 hal/Hal.gcda: 54.60%: num counts=1342, min counter=1084378 hal/Hal.gcda: 55.38%: num counts=1412, min counter=1084378 hal/Hal.gcda: 56.16%: num counts=1446, min counter=951474 hal/Hal.gcda: 56.94%: num counts=1526, min counter=951474 hal/Hal.gcda: 57.72%: num counts=1606, min counter=951474 hal/Hal.gcda: 58.50%: num counts=1684, min counter=951474 hal/Hal.gcda: 59.28%: num counts=1760, min counter=811897 hal/Hal.gcda: 60.06%: num counts=1854, min counter=811897 hal/Hal.gcda: 60.84%: num counts=1948, min counter=811897 hal/Hal.gcda: 61.62%: num counts=2029, min counter=811897 hal/Hal.gcda: 62.40%: num counts=2124, min counter=672090 hal/Hal.gcda: 63.18%: num counts=2237, min counter=672090 hal/Hal.gcda: 63.96%: num counts=2351, min counter=672090 hal/Hal.gcda: 64.74%: num counts=2425, min counter=536827 hal/Hal.gcda: 65.52%: num counts=2567, min counter=536827 hal/Hal.gcda: 66.30%: num counts=2709, min counter=536827 hal/Hal.gcda: 67.08%: num counts=2851, min counter=536827 hal/Hal.gcda: 67.86%: num counts=2993, min counter=536827 hal/Hal.gcda: 68.64%: num counts=3070, min counter=469085 hal/Hal.gcda: 69.42%: num counts=3232, min counter=469085 hal/Hal.gcda: 70.20%: num counts=3395, min counter=469085 hal/Hal.gcda: 70.98%: num counts=3543, min counter=401495 hal/Hal.gcda: 71.76%: num counts=3733, min counter=401495 hal/Hal.gcda: 72.54%: num counts=3923, min counter=401495 hal/Hal.gcda: 73.32%: num counts=4071, min counter=333978 hal/Hal.gcda: 74.10%: num counts=4299, min counter=333978 hal/Hal.gcda: 74.88%: num counts=4527, min counter=333978 hal/Hal.gcda: 75.66%: num counts=4753, min counter=333978 hal/Hal.gcda: 76.44%: num counts=4961, min counter=266317 hal/Hal.gcda: 77.22%: num counts=5247, min counter=266317 hal/Hal.gcda: 78.00%: num counts=5533, min counter=266317 hal/Hal.gcda: 78.78%: num counts=5819, min counter=266317 hal/Hal.gcda: 79.56%: num counts=5980, min counter=232660 hal/Hal.gcda: 80.34%: num counts=6308, min counter=232660 hal/Hal.gcda: 81.12%: num counts=6603, min counter=198695 hal/Hal.gcda: 81.90%: num counts=6986, min counter=198695 hal/Hal.gcda: 82.68%: num counts=7370, min counter=198695 hal/Hal.gcda: 83.46%: num counts=7722, min counter=165900 hal/Hal.gcda: 84.24%: num counts=8181, min counter=165900 hal/Hal.gcda: 85.02%: num counts=8621, min counter=132608 hal/Hal.gcda: 85.80%: num counts=9195, min counter=132608 hal/Hal.gcda: 86.58%: num counts=9636, min counter=115741 hal/Hal.gcda: 87.36%: num counts=10284, min counter=115741 hal/Hal.gcda: 88.14%: num counts=11007, min counter=98946 hal/Hal.gcda: 88.92%: num counts=11704, min counter=98946 hal/Hal.gcda: 89.70%: num counts=12574, min counter=82393 hal/Hal.gcda: 90.48%: num counts=13499, min counter=65856 hal/Hal.gcda: 91.26%: num counts=14569, min counter=65856 hal/Hal.gcda: 92.04%: num counts=15700, min counter=57610 hal/Hal.gcda: 92.82%: num counts=17240, min counter=49329 hal/Hal.gcda: 93.60%: num counts=18930, min counter=41047 hal/Hal.gcda: 94.38%: num counts=20933, min counter=32825 hal/Hal.gcda: 95.16%: num counts=23128, min counter=28719 hal/Hal.gcda: 95.94%: num counts=26146, min counter=20488 hal/Hal.gcda: 96.72%: num counts=30069, min counter=16389 hal/Hal.gcda: 97.50%: num counts=35296, min counter=10241 hal/Hal.gcda: 98.28%: num counts=43669, min counter=6145 hal/Hal.gcda: 99.06%: num counts=59589, min counter=3072 hal/Hal.gcda: 99.90%: num counts=115840, min counter=320 Teresa > > -- > Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. -- Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413