http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53958
--- Comment #3 from Steven Bosscher <steven at gcc dot gnu.org> 2012-08-26 23:41:41 UTC --- Created attachment 28088 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28088 Somewhat reduced, preprocessed test case On x86_64, compile with: $ ./cc1plus -m32 -quiet -ftime-report -std=gnu++98 -O2 -g2 PR53958.cc With 1 "HUN" line I have: var-tracking dataflow : 1.54 (24%) usr var-tracking emit : 1.58 (25%) usr TOTAL : 6.43 With 2 "HUN" lines, this changes to: var-tracking dataflow : 9.19 (37%) usr var-tracking emit : 8.85 (36%) usr TOTAL : 24.86 With 3 "HUN" lines, things begin to get really ugly: var-tracking dataflow : 33.39 (43%) usr var-tracking emit : 31.79 (41%) usr TOTAL : 77.44 With 4 "HUN lines, the last test I ran, the timings are: var-tracking dataflow : 69.47 (80%) usr var-tracking emit : 0.03 ( 0%) usr TOTAL : 87.2495353 kB So both the var-tracking dataflow and note emitting initially show quadratic behavior for this test case, but the emitting appears to have some kind of cut-off to make it disappear for the last test: PR53958.cc: In function 'void construct_core_types(simple_list<input_type_entry>&)': PR53958.cc:234:6: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without void construct_core_types(simple_list<input_type_entry> &typelist) This limit is never reached in the original test case.