From: David Miller <da...@davemloft.net> Date: Tue, 06 Nov 2012 14:16:32 -0500 (EST)
> (gdb) p inline_summary (edge->caller)->time > $1205 = -1044761 This negative value is computed by inline_update_overall_summary(). I added some debugging to dump the entry->time values processed when info->time goes negative: davem@patience:~/src/GIT/GCC/build-sparc32-linux/prev-gcc$ ./cc1plus -quiet -g -O2 -o x.s graphite-interchange.i e[19]: time[0] e[19]: time[3996] e[19]: time[4000] e[19]: time[1960] e[19]: time[7840] e[19]: time[980] e[19]: time[4900] e[19]: time[382] e[19]: time[382] e[19]: time[2292] e[19]: time[10073452] e[19]: time[6644] e[19]: time[10865] e[19]: time[726004281] e[19]: time[10865] e[19]: time[726004281] e[19]: time[10865] e[19]: time[726004281] e[19]: time[3916] My initial impression is that we'll need to use gcov_t all over the place, which is unfortunate because that's going to make the inliner more expensive on 32-bit builds. Or perhaps we can get away with only using gcov_t for info->time, I'll give that a try.