These optimizations are often not possible in many compilers, due to independent compilation, where optimization happens separately in each translation unit during " compilation, " but the " dumb linker " simply links object files, without performing any optimizations itself, and thus interprocedural optimization between translation units is not possible.