[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #11 from jakub at gcc dot gnu dot org  2010-08-25 21:27 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #10 from jakub at gcc dot gnu dot org  2010-08-25 21:25 ---
Subject: Bug 44858

Author: jakub
Date: Wed Aug 25 21:25:18 2010
New Revision: 163555

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163555
Log:
PR rtl-optimization/44858
* combine.c (try_combine): If recog_for_combine added CLOBBERs to
newi2pat, make sure they don't affect newpat.

* gcc.c-torture/execute/pr44858.c: New test.

Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.c-torture/execute/pr44858.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/combine.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #9 from jakub at gcc dot gnu dot org  2010-08-25 17:51 ---
Subject: Bug 44858

Author: jakub
Date: Wed Aug 25 17:50:59 2010
New Revision: 163552

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163552
Log:
PR rtl-optimization/44858
* combine.c (try_combine): If recog_for_combine added CLOBBERs to
newi2pat, make sure they don't affect newpat.

* gcc.c-torture/execute/pr44858.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr44858.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/combine.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2010-08-25 14:01 ---
Created an attachment (id=21561)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21561&action=view)
gcc46-pr44858-2.patch

Alternate patch, which doesn't give up so easily (usually both sets can go in
any order, so if added clobbers prevent one order, this patch tries the other
order too and only gives up if both orders aren't going to work).


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-08-25 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2010-08-25 13:25 ---
Created an attachment (id=21560)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21560&action=view)
gcc46-pr44858.patch

The combiner bug seems to be similar to PR20322, attached untested patch should
fix it.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-31 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-07-31 09:29 ---
GCC 4.5.1 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.5.1   |4.5.2


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-22 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2010-07-22 09:36 ---
The VRP changes have been committed, so on the trunk this will be now
reproduceable only with -O1 or -O2 -fno-tree-vrp.


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-22 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-22 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.5.1
Version|unknown |4.5.0


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-08 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-07-08 14:44 ---
Created an attachment (id=21147)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21147&action=view)
gcc46-vrp.patch

So, combiner seems to be the first to notice that c must be actually zero
(2 & (x > y)).
This patch just tries to notice it earlier, during VRP, which of course isn't a
fix for this bug (which is somewhere in the combiner where it doesn't notice
that when it moves the and insn it clobbers cc which is needed), just makes it
latent for -O2 (still present at -O1 or -O2 -fno-tree-vrp).


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-08 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-07-08 10:01 ---
Updated testcase:

extern void abort (void);
int a = 3;
int b = 1;

__attribute__((noinline)) long long
foo (int x, int y)
{
  return x / y;
}

__attribute__((noinline)) int
bar (void)
{
  int c = 2;
  c &= foo (1, b) > b;
  b = (a != 0) | c;
  return c;
}

int
main (void)
{
  if (bar () != 0 || b != 1)
abort ();
  return 0;
}


-- 


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



[Bug rtl-optimization/44858] [4.5/4.6 Regression] likely integer wrong code bug

2010-07-08 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2010-07-08 09:58 ---
Caused by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152642


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||uros at gcc dot gnu dot org
 AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW
Summary|likely integer wrong code   |[4.5/4.6 Regression] likely
   |bug |integer wrong code bug


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