Inlining is a code optimization that saves call overhead by copying callee code into a caller. Done right, this is a very powerful mechanism. However, if inlining is done overoptimistically or for too many cold calls, problems such as instruction cache misses will arise.