Compiler tool set for efficiently generating and easily managing multiple program versions of different types
AssigneeIntel Corporation
InventorTimothy M. Carver
Life of this patent
Estimating the term…
Loading patent…
AssigneeIntel Corporation
InventorTimothy M. Carver
Estimating the term…
A compiler tool set manages the complexity of efficiently maintaining multiple versions of a program. This tool set generates various version types of a program in a manner that is easy to use, that is compatible with existing program generation build scripts and makefiles, and that minimizes recompilation. When the compiler of the present invention is invoked by a programmer command, a build script, or a makefile, it produces an augmented object file that contains sufficient information to subsequently generate different versions of the program. Subsequently, the linker of the present invention is invoked specifying the augmented object files to be linked and the version type to be produced as an executable file. The linker maintains a program and object module database that can hold substitution object modules corresponding to each (augmented object file, version type) pair. If any substitution object modules required to satisfy the user's request are missing or are not current in the database, then the linker invokes the compiler to generate them from the augmented object file. Function-by-function equivalence detection and dependency analysis minimize the number of substitution object modules recompiled. Any change in either a module's semantics or in its optimization decisions invalidates all old versions of the module. Finally, the linker places any newly compiled substitution object modules in the database, and builds the specified executable file from the appropriate substitution object modules from the database.
A computer system comprising:
A method comprising:
A computer-readable storage medium having stored thereon a plurality of programming instructions for use by a processor, wherein execution of the plurality of programming instructions implements the method of:
A computer system comprising:
A method comprising:
A computer-readable storage medium having stored thereon a plurality of programming instructions for use by a processor, wherein execution of the plurality of programming instructions implement the method of:
Dependencies are inferred from the claim text.