[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2008-05-09 20:05 ---
Subject: Bug 36187

Author: rguenth
Date: Fri May  9 20:04:57 2008
New Revision: 135126

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=135126
Log:
2008-05-09  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/36187
* g++.dg/opt/pr36187.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/opt/pr36187.C
  - copied unchanged from r135125,
branches/gcc-4_3-branch/gcc/testsuite/g++.dg/opt/pr36187.C
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2008-05-09 19:20 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail||4.3.0
  Known to work|4.2.3 4.4.0 |4.2.3 4.3.1 4.4.0
 Resolution||FIXED


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2008-05-09 19:20 ---
Subject: Bug 36187

Author: rguenth
Date: Fri May  9 19:19:33 2008
New Revision: 135125

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=135125
Log:
2008-05-09  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/36187
* tree-dfa.c (dump_variable): Correct dumping of
SFT_BASE_FOR_COMPONENTS_P.
* tree-ssa-structalias.c (set_uids_in_ptset): Set
SFT_UNPARTITIONABLE_P correctly for the union case.

* g++.dg/opt/pr36187.C: New testcase.

Added:
branches/gcc-4_3-branch/gcc/testsuite/g++.dg/opt/pr36187.C
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/tree-dfa.c
branches/gcc-4_3-branch/gcc/tree-ssa-structalias.c


-- 


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-05-09 14:26 ---
We don't properly mark all fields of the union as base_for_components.  But
the real problem is probably that field-sensitive PTA doesn't consider
structs with unions but we still create SFTs for them.  If we didn't do that
the problem with base_for_components would be avoided as well.


-- 


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-05-09 14:21:11
   date||


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-05-09 14:09 ---
The following aborts with -O2 --param max-aliased-vops=N with N in [19, 25]
on x86_64-unknown-linux-gnu.  Symptom is still lim being wrongly applied.
If you cannot reproduce it search for the correct N with

for n in `seq 0 5 100`; do g++-4.3 -O2 -S testfoo.cxx -fdump-tree-lim
-B/abuild/rguenther/gcc43-g/gcc --param max-aliased-vops=$n; grep lsm
testfoo.cxx.095t.lim > /dev/null 2>&1 && echo $n; done

extern "C" void abort (void);
enum SbxDataType { SbxINTEGER, SbxDECIMAL, SbxBYREF = 0x4000 };
struct SbxValues {
union {
float nSingle;
float* pSingle;
};
SbxDataType eType;
};
static bool ImpPutDoubleFoo( SbxValues* p)
{
bool bRet = false;
SbxValues aTmp;
int count = 0;
start:
switch( p->eType )  {
case SbxINTEGER:
if (count++ > 0)
  abort ();
aTmp.pSingle = &p->nSingle; goto direct;
case SbxBYREF | SbxDECIMAL:
bRet = false;
break;
direct:
aTmp.eType = SbxDataType( p->eType | SbxBYREF );
p = &aTmp; goto start;
case SbxBYREF | SbxINTEGER:
break;
default:
bRet =true;
}
return bRet;
}
int main( int argc, char** argv )
{
SbxValues aTmp;
aTmp.eType = SbxINTEGER;
if ( ImpPutDoubleFoo( &aTmp ) )
abort ();
return 0;
}


-- 


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to work||4.2.3 4.4.0
   Target Milestone|--- |4.3.1


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-05-09 13:56 ---
Created an attachment (id=15621)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15621&action=view)
more minimized testcase


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #15619|0   |1
is obsolete||


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-05-09 13:29 ---
The symptom of the alias problem is that we apply store-motion to

aTmp.eType = SbxDataType( p->eType | SbxBYREF );

but reads through

p = &aTmp; goto start;

in that stmt incorrectly do not alias that store.


-- 


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



[Bug tree-optimization/36187] [4.3 Regression] Partitioning problem with SFTs (again)

2008-05-09 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-05-09 13:26 ---
Created an attachment (id=15619)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15619&action=view)
testcase


-- 


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