[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #25 from spop at gcc dot gnu dot org 2010-02-02 18:02 --- http://gcc.gnu.org/ml/gcc-patches/2009-09/msg3.html was committed to trunk http://gcc.gnu.org/viewcvs?view=revisionrevision=151348 -- spop at gcc dot gnu dot org changed: What|Removed |Added Known to work|3.3.3 |3.3.3 4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #26 from steven at gcc dot gnu dot org 2010-02-02 18:06 --- Re. comment #25: So does that mean this is not a 4.5 regression anymore? If so, please adjust the summary also. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #24 from pinskia at gcc dot gnu dot org 2009-10-01 06:55 --- *** Bug 41531 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||t7 at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #23 from lucier at math dot purdue dot edu 2009-09-03 18:04 --- The gprof output on the _num.i example, with and without -fschedule-insns is at http://www.math.purdue.edu/~lucier/bugzilla/11/gprof.out-fschedule-insns.gz http://www.math.purdue.edu/~lucier/bugzilla/11/gprof.out-fnoschedule-insns.gz -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #19 from vmakarov at redhat dot com 2009-09-02 16:14 --- As I wrote, implementing register pressure-sensitive insn scheduling needs to look at all insns (ready or not) with resolved dependencies. In an extreme cases, such insns could b 10-100 more than the ready ones. Scheduling algorithm in gcc has at best Nlog(N) complexity where N is #insn with resolved dependencies but probably it is even worse. I could try to make some constraints on # of considered insns. I guess you should submit a new bug when the patch will be in the trunk. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #20 from lucier at math dot purdue dot edu 2009-09-02 16:52 --- Vlad: Thank you for your reply. The times I reported are for -fschedule-insns without -fpressure-sched. The times with the addition of -fpressure-sched are not much greater than with -fschedule-insns by itself: With -fschedule-insns scheduling: 22.89 (41%) usr 0.02 ( 2%) sys 22.93 (40%) wall 2125 kB ( 1%) ggc integrated RA : 9.15 (16%) usr 0.06 ( 6%) sys 9.21 (16%) wall 5488 kB ( 3%) ggc scheduling 2 : 0.60 ( 1%) usr 0.00 ( 0%) sys 0.62 ( 1%) wall 422 kB ( 0%) ggc TOTAL : 55.67 0.9356.66 180793 kB with -fschedule-insns -fsched-pressure scheduling: 23.31 (42%) usr 0.02 ( 2%) sys 23.36 (41%) wall 2125 kB ( 1%) ggc integrated RA : 9.18 (16%) usr 0.04 ( 4%) sys 9.22 (16%) wall 5517 kB ( 3%) ggc scheduling 2 : 0.58 ( 1%) usr 0.01 ( 1%) sys 0.58 ( 1%) wall 251 kB ( 0%) ggc TOTAL : 55.77 1.0056.89 179606 kB and with neither -fschedule-insns nor -fsched-pressure: integrated RA : 6.40 (21%) usr 0.05 ( 5%) sys 6.41 (21%) wall 5087 kB ( 3%) ggc scheduling 2 : 0.58 ( 2%) usr 0.01 ( 1%) sys 0.60 ( 2%) wall 244 kB ( 0%) ggc TOTAL : 29.84 0.9830.83 176587 kB So pre--register allocation instruction scheduling even without the new register pressure--aware algorithm takes quite a bit of time. I'll try to build a profiled gcc, and then if I find something I'll put it in a new PR. Brad -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #21 from vmakarov at redhat dot com 2009-09-02 17:11 --- I see. I though you compared '-fschedule-insns' and '-fschedule-insns -fsched-pressure'. Your numbers shows the same as I reported for SPEC2000. The -fsched-pressure adds upto 3% compiler time (for power6) on x86 and x86_64 it is practically the same time (although -fsched-pressure does more job, it is compensated by smaller # of insns after RA). I did not analyzed your code but I think your code is quite specific and probably has a lot of parallelism which creates long ready and queue list. You could play with param max-pending-list-length to see will it help. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #22 from lucier at math dot purdue dot edu 2009-09-02 17:24 --- The output of gprof on this example is at http://www.math.purdue.edu/~lucier/bugzilla/11/gprof.out.gz Everything that takes more than a second is Each sample counts as 0.01 seconds. % cumulative self self total time seconds secondscalls s/call s/call name 10.73 4.45 4.4515565 0.00 0.00 pop_scope 7.28 7.47 3.02 314259938 0.00 0.00 free_list 7.04 10.39 2.92 5575 0.00 0.00 dfs_enumerate_from 5.62 12.72 2.33 314988148 0.00 0.00 alloc_INSN_LIST 5.28 14.91 2.19 5292 0.00 0.00 get_loop_exit_edges 5.14 17.04 2.13 331244515 0.00 0.00 bitmap_set_bit 3.28 18.40 1.36 135329 0.00 0.00 sched_analyze_insn 3.09 19.68 1.2829650 0.00 0.00 free_deps 2.75 20.82 1.14 21773210 0.00 0.00 bitmap_bit_p 2.35 21.80 0.98 14093247 0.00 0.00 dominated_by_p 1.99 22.62 0.83 5357385 0.00 0.00 bitmap_ior_into 1.88 23.40 0.78 199 0.00 0.00 inverted_post_order_compute 1.57 24.05 0.65 342 0.00 0.01 df_worklist_dataflow 1.37 24.62 0.57 51278357 0.00 0.00 decl_jump_unsafe 1.35 25.18 0.56 26181017 0.00 0.00 flow_bb_inside_loop_p 1.13 25.65 0.47 201 0.00 0.00 post_order_compute Nothing immediate jumps out at me. Brad -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #17 from ubizjak at gmail dot com 2009-09-01 12:08 --- Patch at http://gcc.gnu.org/ml/gcc-patches/2009-09/msg3.html -- ubizjak at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2009- ||09/msg3.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #18 from lucier at math dot purdue dot edu 2009-09-02 02:54 --- Vlad: The patch works great in my tests so far, thanks. After installing your patch on today's trunk so that -fschedule-insns actually works, I find it is quite expensive on large files. For example, with today's trunk with your patches applied, for the file http://www.math.purdue.edu/~lucier/bugzilla/8/_num.i.gz and the options /pkgs/gcc-mainline-schedule/bin/gcc -Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math -fno-strict-aliasing -fwrapv -fomit-frame-pointer -fPIC -fno-common -mieee-fp -ftime-report -c _num.i total CPU time on my x86-64 box is TOTAL : 29.60 0.9230.54 176587 kB while with -fschedule-insns it is scheduling: 23.03 (42%) usr 0.02 ( 2%) sys 23.07 (41%) wall 2125 kB ( 1%) ggc TOTAL : 55.47 1.0356.57 180793 kB I don't know whether you can make it go faster now, or whether that's unreasonable and I should just wait and file another PR. Brad -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #16 from lucier at math dot purdue dot edu 2009-08-28 16:54 --- Re: Comment 7: Since end users will gain little benefit from being able to run the sched1 pass on x86 code, I don't think this is a serious problem. PR33928 (comments 108 and 111) give an example where -fschedule-insns on x64-64 gives a 14% speedup on some direct and inverse FFT codes, certainly not a trivial difference. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #15 from ubizjak at gmail dot com 2009-08-27 17:33 --- *** Bug 41164 has been marked as a duplicate of this bug. *** -- ubizjak at gmail dot com changed: What|Removed |Added CC||lucier at math dot purdue ||dot edu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #14 from rguenth at gcc dot gnu dot org 2009-08-04 12:27 --- GCC 4.3.4 is being released, adjusting target milestone. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.3.4 |4.3.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319
[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns
--- Comment #13 from jsm28 at gcc dot gnu dot org 2009-03-31 18:58 --- Closing 4.2 branch. -- jsm28 at gcc dot gnu dot org changed: What|Removed |Added Summary|[4.2/4.3/4.4/4.5 regression]|[4.3/4.4/4.5 regression] |amd64 register spill error |amd64 register spill error |with -fschedule-insns |with -fschedule-insns Target Milestone|4.2.5 |4.3.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24319