This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/15419] memcpy pessimization
- From: "rth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 May 2005 08:21:31 -0000
- Subject: [Bug tree-optimization/15419] memcpy pessimization
- References: <20040513140505.15419.falk@debian.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rth at gcc dot gnu dot org 2005-05-18 08:21 -------
Not alpha specific. The tunings we have in the alpha memcpy expansion are
correct for real copies between memory. We want to prefer
ldbu $1,3($17)
ldbu $2,0($17)
ldbu $3,1($17)
ldbu $4,2($17)
stb $1,3($16)
stb $2,0($16)
stb $3,1($16)
stb $4,2($16)
over
ldq_u $5,0($17)
ldq_u $2,3($17)
ldq_u $3,3($16)
ldq_u $4,0($16)
extlh $2,$17,$2
extll $5,$17,$5
msklh $3,$16,$3
mskll $4,$16,$4
bis $5,$2,$1
inslh $1,$16,$6
insll $1,$16,$1
bis $3,$6,$3
bis $4,$1,$4
stq_u $3,3($16)
stq_u $4,0($16)
The trick is that we want to notice at the tree level that the memcpy is
really a killing store of a local variable, and rewrite it into the
assignment form. I'll give it some thought.
--
What |Removed |Added
----------------------------------------------------------------------------
GCC target triplet|alphaev68-*-linux-gnu |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15419