[Bug tree-optimization/19581] Missed store motion on the tree level
-- 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
--- 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
--- 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
--- 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