Bug 54827 - [4.8 Regression] 70% compile time regression building builtin-sched.c from Linux's perf
Summary: [4.8 Regression] 70% compile time regression building builtin-sched.c from Li...
Status: RESOLVED DUPLICATE of bug 54402
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.8.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-05 17:40 UTC by Markus Trippelsdorf
Modified: 2012-10-05 17:57 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
testcase (161.45 KB, text/plain)
2012-10-05 17:41 UTC, Markus Trippelsdorf
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Trippelsdorf 2012-10-05 17:40:39 UTC
With gcc-4.7.2 I get:

 % time gcc -c -O3 -g builtin-sched.i
gcc -c -O3 -g builtin-sched.i  12.63s user 0.02s system 99% cpu 12.690 total

With current trunk:

 % time gcc -c -O3 -g  builtin-sched.i
gcc -c -O3 -g builtin-sched.i  40.54s user 0.03s system 99% cpu 40.703 total

perf report shows:
    54.58%      cc1  cc1                         [.] find_base_term(rtx_def*)
     8.02%      cc1  cc1                         [.] ix86_find_base_term(rtx_def*)
     3.55%      cc1  cc1                         [.] rtx_equal_for_memref_p(rtx_def const*, rtx_def const*)
     2.91%      cc1  cc1                         [.] true_dependence_1(rtx_def const*, machine_mode, rtx_def*, rtx_def const*, rtx_def*, bool)
     2.79%      cc1  cc1                         [.] memrefs_conflict_p(int, rtx_def*, int, rtx_def*, long)
     2.77%      cc1  cc1                         [.] exp_equiv_p(rtx_def const*, rtx_def const*, int, bool)
     2.01%      cc1  cc1                         [.] for_each_rtx_1(rtx_def*, int, int (*)(rtx_def**, void*), void*)
     1.76%      cc1  cc1                         [.] rtx_equal_p(rtx_def const*, rtx_def const*)

-ftime-report:
Execution times (seconds)
 phase setup             :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall    1101 kB ( 3%) ggc
 phase parsing           :   0.07 ( 0%) usr   0.07 (70%) sys   0.14 ( 0%) wall   13463 kB (32%) ggc
 phase opt and generate  :  39.64 (100%) usr   0.03 (30%) sys  39.79 (100%) wall   26000 kB (62%) ggc
...
 variable tracking       :   1.58 ( 4%) usr   0.00 ( 0%) sys   1.57 ( 4%) wall    1210 kB ( 3%) ggc
 var-tracking dataflow   :  13.68 (34%) usr   0.00 ( 0%) sys  13.71 (34%) wall     107 kB ( 0%) ggc
 var-tracking emit       :  14.20 (36%) usr   0.00 ( 0%) sys  14.26 (36%) wall     435 kB ( 1%) ggc
...
 TOTAL                 :  39.74             0.10            39.96              41799 kB
Comment 1 Markus Trippelsdorf 2012-10-05 17:41:20 UTC
Created attachment 28366 [details]
testcase
Comment 2 Markus Trippelsdorf 2012-10-05 17:54:57 UTC
Caused by var-tracking. With-fno-var-tracking everything is fine again:

 % time gcc -fno-var-tracking -w -c -O3 -ggdb3 builtin-sched.i
gcc -fno-var-tracking -w -c -O3 -ggdb3 builtin-sched.i  10.50s user 0.04s system 99% cpu 10.574 total
Comment 3 Markus Trippelsdorf 2012-10-05 17:57:08 UTC
Dup of 54402

*** This bug has been marked as a duplicate of bug 54402 ***