[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2009-10-15 Thread ubizjak at gmail dot com


--- Comment #18 from ubizjak at gmail dot com  2009-10-15 18:04 ---
Backport approved offline by Vlad. Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.4.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2009-10-08 Thread ubizjak at gmail dot com


--- Comment #16 from ubizjak at gmail dot com  2009-10-08 08:17 ---
Vlad, is it OK if I backport this patch to 4.4? I have tested it on 4.4 without
problems.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2009-10-07 Thread vmakarov at gcc dot gnu dot org


--- Comment #15 from vmakarov at gcc dot gnu dot org  2009-10-07 17:18 
---
Subject: Bug 22072

Author: vmakarov
Date: Wed Oct  7 17:18:38 2009
New Revision: 152533

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152533
Log:
2009-10-07  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/22072
* ira-lives.c (check_and_make_def_conflict): Process all operands.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-lives.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2009-10-06 Thread vmakarov at redhat dot com


--- Comment #14 from vmakarov at redhat dot com  2009-10-06 21:59 ---
IRA does not create a conflict for p66 and p67 (in function triangle).  One
pseudo is earlyclobber.  They should have a conflict.  Therefore p67 gets wrong
hard register and reload fixes this by generation of additional move.

Actually I found a reason for this.  It is a typo in
ira-lives.c::check_and_make_def_conflict (continue stmts should be instead of
returns in the loop).   I'll submit the patch for a review soon.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2008-09-13 Thread pinskia at gcc dot gnu dot org


--- Comment #12 from pinskia at gcc dot gnu dot org  2008-09-14 04:28 
---
a1 (r65,l0) best GENERAL_REGS, cover GENERAL_REGS

If IRA chose CREG instead of GENERAL_REGS, it would have been right.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||vmakarov at gcc dot gnu dot
   ||org
  GCC build triplet|i686-pc-linux-gnu   |
   GCC host triplet|i686-pc-linux-gnu   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2008-09-13 Thread pinskia at gcc dot gnu dot org


--- Comment #13 from pinskia at gcc dot gnu dot org  2008-09-14 04:30 
---
*** Bug 27856 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||27856
  nThis||
 CC||etienne_lorrain at yahoo dot
   ||fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072



[Bug middle-end/22072] bizarre code for int*int/2 for -Os

2006-09-17 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2006-09-18 01:24 
---
So the only bug here is that -Os produces an extra move.  That comes from the
register allocator/reload:

Reloads for insn # 13
Reload 0: reload_in (SI) = (reg:SI 1 dx [65])
GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 3)
reload_in_reg: (reg:SI 1 dx [65])
reload_reg_rtx: (reg:SI 2 cx)


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|minor   |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||missed-optimization, ra
   Last reconfirmed|-00-00 00:00:00 |2006-09-18 01:24:44
   date||
Summary|bizarre code for int*int/2  |bizarre code for int*int/2
   ||for -Os


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072