Re: [GD-Windows] memory alignment vs passing by value
Brought to you by:
vexxed72
From: Dan T. <da...@ar...> - 2004-12-02 01:02:14
|
Hmm now I'm confused. I'm going to make some statements and see if I can't show my ignorance in such a way that it can be corrected. It seems weird that aliasing would be a problem - since everything is in 4 bytes chunks. From what I understood about aliasing, that only mattered if you broke dword alignment, e.g. unsigned char* pData = some_aligned_junk; return *(pData + 1); // hit 1 byte off the alignment produced by the compiler. However everything he is dealing with is already in dwords, effectively, so this shouldn't be a problem... Could it be that the compiler recognizes the dprod as const, and as such can inline it directly without creating the parameter as a new instance? i.e. the code effectively just drops in without any copy constructors being called at all, whereas with a reference, it still has to chase the pointers, making it a bit slower? Does this make sense? -Dan Jon Watte wrote: >>I measured the time of computing 100 million bilinear interpolation using >>dot products, and changing the dprod operation to accept a const reference >>instead of the const value makes the test run an order of magnitude >> >> >slower!! > >Is this Evil Aliasing, Part II ? You could find out by disassembling >both versions and comparing. If it's re-loading through the reference >pointer all the time, then it's probably aliasing related. References >are really pointers, so they can introduce (false) aliasing hazards. > >Cheers, > > / h+ > > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://productguide.itmanagersjournal.com/ >_______________________________________________ >Gamedevlists-windows mailing list >Gam...@li... >https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows >Archives: >http://sourceforge.net/mailarchive/forum.php?forum_id=555 > > > > |