------- Comment #17 from ubizjak at gmail dot com  2009-02-12 18:23 -------
(In reply to comment #15)
> The DFmode and DImodes are different. Aligning DFmode on stack is very
> performance critical, while DImodes on 32bit machine can quite safely be
> misaligned (if we ignore their possible use in MMX intrincisc).

I would just point out that on 32bit targets we use XMM registers in conversion
from long long and unsigned int to FP value. I have found, that when DImode
value is stored from intermediate XMM register to memory and then read from
this location via fildll, it is very important that DImode memory is aligned to
its natural boundary (8 bytes). Misaligned DImode memory probably defeats store
forwarding - we are talking about 5-6 _times_ longer execution times on short
loops (please grep for "store forwarding" in i386.md for comments on this
matter).

I think that due to this performance hit, DImode locations should remain to be
aligned on 32bit targets, see PR 13958.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |13958


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

Reply via email to