In a computer system, a method for optimizing object code modules of a program during linking of the object code modules, said object code modules compiled from a plurality of source code modules from a program, each source code module being in the form of a high level language, comprising the steps of:
- translating said object code modules into a linked code module in the form of an intermediate language, said intermediate language having instructions independent of a particular computer system hardware architecture;
- modifying said linked code module to optimize the execution of the program;
- and
- generating machine executable code compatible with a target computer system hardware architecture from said linked code module in the form of said intermediate language.