1. A method of generating a software program executable binary file, the method comprising: accessing, by a processing device, a first file for a first module, wherein the first file includes source code; accessing, by the processing device, a second file for a second module, wherein the second file includes machine-executable object code and object file summary information; and generating, by the processing device, the executable binary file from at least the first and second files, wherein the object file summary information is used in optimizing the executable binary file generated, wherein the object file summary information includes a summary intermediate representation (SIR) and an extension to a linker symbol table, wherein the SIR includes information relating to symbols accessed by a procedure in the object code, and wherein the extension to the linker symbol table includes a flag indicating whether the procedure exposes a memory address by storing the memory address in a location accessible outside the procedure.