Modern compilers are extremely sophisticated and complex. This enables them to produce highly optimized code. However, due to the limited scope of compilers, the optimization opportunities that arise from analyzing and optimizing across module boundaries remain largely unexplored. We examined the viability of optimizing statically linked programs for the IA-64 architecture. As a result, the code size was reduced on average with 20% and the execution time with 4%.