[Bug rtl-optimization/24319] [4.3/4.4/4.5 regression] amd64 register spill error with -fschedule-insns

2010-02-02 Thread spop at gcc dot gnu dot org


--- 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

2010-02-02 Thread steven at gcc dot gnu dot org


--- 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

2009-10-01 Thread pinskia at gcc dot gnu dot org


--- 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

2009-09-03 Thread lucier at math dot purdue dot edu


--- 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

2009-09-02 Thread vmakarov at redhat dot com


--- 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

2009-09-02 Thread lucier at math dot purdue dot edu


--- 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

2009-09-02 Thread vmakarov at redhat dot com


--- 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

2009-09-02 Thread lucier at math dot purdue dot edu


--- 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

2009-09-01 Thread ubizjak at gmail dot com


--- 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

2009-09-01 Thread lucier at math dot purdue dot edu


--- 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

2009-08-28 Thread lucier at math dot purdue dot edu


--- 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

2009-08-27 Thread ubizjak at gmail dot com


--- 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

2009-08-04 Thread rguenth at gcc dot gnu dot org


--- 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

2009-03-31 Thread jsm28 at gcc dot gnu dot org


--- 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