note that one of the most important reasons for inlining *on some architectures* is to deal with cache thrashing when a function is called within a loop. This of course is something that is out of reach of analysis by the programmer or the compiler, but it can often mean that inlining helps even though to a simple minded analysis it does not seem to.