Also, instructions that operate solely on registers execute faster in the internal CPU pipeline. However in the x86 architecture, sometimes there are just not enough registers to accommodate all the values. It turns off stack frame initialization, which saves a few instructions and frees the EBP register for general use. Though the advantage is small, it's still an advantage. Needless to say in a scarce pool of x86 registers, an extra register may be a big asset.
Simple parameters are only a part of the problem.
Most programs use objects heavily and pass them as parameters frequently. Where there are objects, one finds constructors, destructors, and quite often memory allocation. It is clear that the overhead can be quite substantial. Also keep in mind that static or global variables are not thread safe. Max is a software developer specializing in code optimization, signal processing and 3D graphics.