[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2013-04-12 Thread jakub at gcc dot gnu.org


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



Jakub Jelinek jakub at gcc dot gnu.org changed:



   What|Removed |Added



 Status|ASSIGNED|RESOLVED

 Resolution||FIXED

   Target Milestone|4.6.4   |4.7.0



--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2013-04-12 
16:18:04 UTC ---

The 4.6 branch has been closed, fixed in GCC 4.7.0.


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

Bug 51528 depends on bug 52244, which changed state.

Bug 52244 Summary: [4.5/4.6/4.7 Regression] wrong code for function returning 
union between int and _Bool at O  2, with no-early-inlining
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52244

   What|Old Value   |New Value

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE

--- Comment #11 from Richard Guenther rguenth at gcc dot gnu.org 2012-02-14 
15:33:03 UTC ---
*** Bug 52244 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

--- Comment #12 from Richard Guenther rguenth at gcc dot gnu.org 2012-02-14 
15:34:02 UTC ---
Author: rguenth
Date: Tue Feb 14 15:33:56 2012
New Revision: 184214

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=184214
Log:
2012-02-14  Richard Guenther  rguent...@suse.de

PR tree-optimization/52244
PR tree-optimization/51528
* tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
replacements for integral types.

* gcc.dg/torture/pr52244.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr52244.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-sra.c


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-13 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 CC||iains at gcc dot gnu.org

--- Comment #9 from Iain Sandoe iains at gcc dot gnu.org 2012-02-13 17:46:42 
UTC ---
the target has a different sized bool if that is relevant (int 32 sized)...


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-13 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

--- Comment #10 from Iain Sandoe iains at gcc dot gnu.org 2012-02-13 20:40:43 
UTC ---
(In reply to comment #8)

 So, I don't see what's wrong on PPC (with SRA, that is).  This must be
 a target bug if at all (note I'm only inspecting dumps and did not
 reproduce the execute fail).

yes, seems to be .. the tree-ssa dump is unchanged between -O1 (OK) and -O2
(fails).

this seems to be a 4.5, 4.6 and 4.7 regression [4.4. is OK] - the call to bar
() is being dropped from foo ().
will move to a different PR.  Thanks for the test-case ;)


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Depends on||52115

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-02-06 
14:13:48 UTC ---
On ppc the main SRA pass does nothing to foo () because of differences in
how the return value is returned.  Still the IL at expansion time looks
great:

foo ()
{
bb 2:
  retval.b = 1;
  use_bool (retval);
  retval.i = 65534;
  return retval;

}

compared to x86_64 where we have the uglier

foo ()
{
  union U u;
  union U D.1733;

bb 2:
  u.b = 1;
  use_bool (u);
  u = VIEW_CONVERT_EXPRunion U(65534);
  D.1733 = u;
  u ={v} {CLOBBER};
  return D.1733;

Compared to -fno-tree-sra on PPC we have

foo ()
{
  union U u;

bb 2:
  retval.b = 1;
  use_bool (retval);
  u.i = 65534;
  retval = u;
  u ={v} {CLOBBER};
  return retval;

so SRA managed to remove the aggregate temporary and its copy.

So, I don't see what's wrong on PPC (with SRA, that is).  This must be
a target bug if at all (note I'm only inspecting dumps and did not
reproduce the execute fail).


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-02-04 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 CC||rguenther at suse dot de

--- Comment #7 from Dominique d'Humieres dominiq at lps dot ens.fr 2012-02-04 
19:14:34 UTC ---
On powerpc-apple-darwin9 testing revision 183874 I get with -m32:

FAIL: gcc.dg/torture/pr51528.c  -O2  execution test
FAIL: gcc.dg/torture/pr51528.c  -O3 -fomit-frame-pointer  execution test
FAIL: gcc.dg/torture/pr51528.c  -O3 -g  execution test
FAIL: gcc.dg/torture/pr51528.c  -Os  execution test
FAIL: gcc.dg/torture/pr51528.c  -O2 -flto -flto-partition=none  execution test
FAIL: gcc.dg/torture/pr51528.c  -O2 -flto  execution test

These execution failures are due to a.i==0.


[Bug tree-optimization/51528] [4.6 Regression] SRA should not create BOOLEAN_TYPE replacements

2012-01-31 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51528

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.7.0
Summary|[4.6/4.7 Regression] SRA|[4.6 Regression] SRA should
   |should not create   |not create BOOLEAN_TYPE
   |BOOLEAN_TYPE replacements   |replacements

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-01-31 
10:43:09 UTC ---
The testcase is worked around.  Maybe reliably enough, maybe not ...

At least the patches seem to be backportable eventually.