Tail Call Optimization is the process by which a smart compiler can make a call to a function and take no additional stack space. The only situation in which this happens is if the last instruction executed in a function is a call to another function or the function itself.