[Bug tree-optimization/19581] Missed store motion on the tree level

2006-02-03 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.2.0


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



[Bug tree-optimization/19581] Missed store motion on the tree level

2006-02-03 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2006-02-03 12:32 
---
On trunk with --param salias-max-array-elements=6 we now get

.L4:
addl%edx, %eax
addl%eax, %ecx
addl%ecx, %ebx
addl%ebx, %esi
addl%esi, %edi
addl%edi, %edx
subl$1, -16(%ebp)
jne .L4

so this is fixed.  LSM could also be teached to use the infrastrucure I
invented for the copyprop enhancement.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/19581] Missed store motion on the tree level

2005-07-26 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-07-26 
13:29 ---
For a reduced array with only 4 elements (I know - this should be a --param) we
now get in .vars (with the array aliasing patch):

f (n)
{
  int n.39;
  unsigned int ivtmp.33;
  int lsm_tmp.32;
  int lsm_tmp.31;
  int lsm_tmp.30;
  int lsm_tmp.29;

:
  n.39 = n - 1;
  if (n.39 != 0) goto ; else goto ;

:;
  lsm_tmp.29 = r[2];
  lsm_tmp.30 = r[1];
  lsm_tmp.31 = r[3];
  lsm_tmp.32 = r[0];
  ivtmp.33 = 0;

:;
  lsm_tmp.32 = lsm_tmp.32 + lsm_tmp.31;
  lsm_tmp.30 = lsm_tmp.32 + lsm_tmp.30;
  lsm_tmp.29 = lsm_tmp.30 + lsm_tmp.29;
  lsm_tmp.31 = lsm_tmp.31 + lsm_tmp.29;
  ivtmp.33 = ivtmp.33 + 1;
  if (ivtmp.33 != (unsigned int) n.39) goto ; else goto ;

:;
  r[2] = lsm_tmp.29;
  r[1] = lsm_tmp.30;
  r[3] = lsm_tmp.31;
  r[0] = lsm_tmp.32;

:;
  return;

}

and the asm loop looks like

.L4:
addl%edx, %eax
incl%esi
addl%eax, %ecx
addl%ecx, %ebx
addl%ebx, %edx
cmpl%edi, %esi
jne .L4

as in exactly what you want.  Don't hold your breath for 4.1, though.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-06-09 16:37:28 |2005-07-26 13:29:06
   date||


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


[Bug tree-optimization/19581] Missed store motion on the tree level

2005-07-26 Thread dberlin at gcc dot gnu dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-07-26 
13:18 ---
Richard guenther is working on aliasing for arrays, i'll leave this one for him

-- 
   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 AssignedTo|dberlin at gcc dot gnu dot  |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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