Good summary. As you mention, the fast code option can can cause a cache miss. Additionally, earlier versions at least, could result in enough bloat to create extra pages. Related code, that under 'small' sits in the same page, could be split into different pages under 'fast'. This can result in more page faults. The performance impact due to page faults can exceed the speed improvements made from 'fast'. So, based on past experience, and that these days the difference in optimization strategies is generally minor, I still use 'small'. I haven't experienced the compiler ignoring my inline settings yet, have to check that, thanks. The memset issue ... I ran into the same things years ago and found the following: http://msdn2.microsoft.com/en-us/library/ms972826.aspx[^]
...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack