Claims Analysis
Total Claims: 51
Claim 1
Independent Claim
187 words
A computer system comprising: a compiler to compile a user-specified source program into an augmented object module, and to compile said augmented object module into substitution object modules of a plurality of version types; a database to hold said substitution object modules; and a linker, coupled to said compiler and to said database, to link a user-specified augmented object module into an executable program of one of a plurality of user-specified version types, wherein if said version type is an ordinary version type, said user-specified augmented object module is linked into said executable program, else said linker to: i) determine whether or not said database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then invoke said compiler to further compile said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and place the same into said database; and iii) link said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 2
Dependent Claim
187 words
A computer system comprising: a compiler to compile a user-specified source program into an augmented object module, and to compile said augmented object module into substitution object modules of a plurality of version types; a database to hold said substitution object modules; and a linker, coupled to said compiler and to said database, to link a user-specified augmented object module into an executable program of one of a plurality of user-specified version types, wherein if said version type is an ordinary version type, said user-specified augmented object module is linked into said executable program, else said linker to: i) determine whether or not said database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then invoke said compiler to further compile said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and place the same into said database; and iii) link said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 3
Independent Claim
139 words
A method comprising: compiling a user-specified source program into an augmented object module; and linking said augmented object module into an executable program of a user-specified version type, wherein if said version type is an ordinary version type, said augmented object module is linked into said executable program, else said linking comprising: i) determining whether or not a database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then further compiling said user-specified augmented object module into said corresponding substitution object module of said user specified version type and placing the same into said database; and iii) linking said corresponding substitution object module of said user specified version type from said database into said executable program of said user-specified version type.
Claim 4
Independent Claim
139 words
A method comprising: compiling a user-specified source program into an augmented object module; and linking said augmented object module into an executable program of a user-specified version type, wherein if said version type is an ordinary version type, said augmented object module is linked into said executable program, else said linking comprising: i) determining whether or not a database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then further compiling said user-specified augmented object module into said corresponding substitution object module of said user specified version type and placing the same into said database; and iii) linking said corresponding substitution object module of said user specified version type from said database into said executable program of said user-specified version type.
Claim 5
Dependent Claim
162 words
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: compiling a user-specified source program into an augmented object module; and linking said augmented object module into an executable program of a user-specified version type, wherein if said version type is an ordinary version type, said augmented object module it linked into said executable, else said linking comprising: i) determining whether or not a database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then further compiling said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; and iii) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 6
Dependent Claim
162 words
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: compiling a user-specified source program into an augmented object module; and linking said augmented object module into an executable program of a user-specified version type, wherein if said version type is an ordinary version type, said augmented object module it linked into said executable, else said linking comprising: i) determining whether or not a database holds a substitution object module that corresponds to said user-specified augmented object module, that is of said user-specified version type, and that is current; ii) if not, then further compiling said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; and iii) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 7
Dependent Claim
215 words
A computer system comprising: a compiler to compile a user-specified plurality of source programs into a plurality of augmented object modules, and to compile each said augmented object module into substitution object modules of a plurality of version types; a database to hold program information and said substitution object modules; and a linker, coupled to said compiler and to said database, to link a user-specified plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said user-specified augmented object module, if said user-specified version type is an ordinary version type, said user-specified augmented object module is linked into said executable programs, else said linker to: i) determine, based on said program information and said substitution object modules within said database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then invoke said compiler to further compile said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and to place the same into said database; iii) update said program information; and iv) link said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 8
Dependent Claim
215 words
A computer system comprising: a compiler to compile a user-specified plurality of source programs into a plurality of augmented object modules, and to compile each said augmented object module into substitution object modules of a plurality of version types; a database to hold program information and said substitution object modules; and a linker, coupled to said compiler and to said database, to link a user-specified plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said user-specified augmented object module, if said user-specified version type is an ordinary version type, said user-specified augmented object module is linked into said executable programs, else said linker to: i) determine, based on said program information and said substitution object modules within said database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then invoke said compiler to further compile said user-specified augmented object module into said corresponding substitution object module of said user-specified version type and to place the same into said database; iii) update said program information; and iv) link said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 9
Dependent Claim
15 words
The computer system of claim 4, wherein said specified version type is a debug version.
Claim 10
Dependent Claim
15 words
The computer system of claim 4, wherein said specified version type is an optimized version.
Claim 11
Dependent Claim
15 words
The computer system of claim 4, wherein said specified version type is an instrumented version.
Claim 12
Dependent Claim
21 words
The computer system of claim 4, wherein said augmented object module comprises a representation of said source program suitable for recompilation.
Claim 13
Dependent Claim
22 words
The computer system of claim 4, wherein said database is further to hold a representation of said source program suitable for recompilation.
Claim 14
Dependent Claim
31 words
The computer system of claim 4, wherein said augmented object module comprises a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 15
Dependent Claim
32 words
The computer system of claim 4, wherein said database is further to hold a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 16
Dependent Claim
29 words
The computer system of claim 4, wherein said augmented object module comprises a control-flow graph and an estimated run-time profile of each function held within said augmented object module.
Claim 17
Dependent Claim
33 words
The computer system of claim 4, wherein said database is further to hold a control-flow graph and an estimated run-time profile of each function held within said user-specified plurality of augmented object modules.
Claim 18
Dependent Claim
18 words
The computer system of claim 4, wherein said linker is further to determine what function-call sites are inlined.
Claim 19
Dependent Claim
21 words
The computer system of claim 4, wherein said linker is further to determine what data objects are placed in fast memory.
Claim 20
Dependent Claim
34 words
The computer system of claim 4, wherein said user-specified version type indicates at least two different version types of said plurality of augmented object modules and said corresponding substitution object modules to be linked.
Claim 21
Dependent Claim
274 words
The computer system of claim 4, wherein said linker to determine whether or not said database holds said substitution object modules is to: a) perform an initial link to determine what functions within said specified plurality of augmented object modules are to be included in said executable program; b) for each augmented object module whose compiler timestamp changed between the version in said augmented object module and the version in said database, said linker to mark each corresponding substitution object module within said database as not current; c) for each data object referenced in each function to be included, if the data object information of said data object has changed between the version in said augmented object module and the version in said database, said linker to mark all functions referencing that variable as having a propagating change; d) for each function to be included whose function equivalence representation changed between the version in said augmented object module and the version in said database, said linker to mark that function as having said propagating change; e) for each function to be included having an optimization decision that has changed between the version in said augmented object module and the version in said database, said linker to mark that function as having said propagating change; f) for each function having said propagating change, said linker to mark the functions that inline that function as having said propagating change, this step f) to continue until no more functions are marked; p1 g) for each substitution object module, said linker to mark it as not current if it contains any function marked as having said propagating change.
Claim 22
Independent Claim
155 words
A method comprising: compiling a user-specified plurality of source programs into a plurality of augmented object modules; and linking said plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said augmented object module, if said version type is an ordinary version type, said augmented object module is linked into said executable program, else said linking comprising: i) determining, based on program information within a database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then further compiling said augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; iii) updating said program information; and iv) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 23
Independent Claim
155 words
A method comprising: compiling a user-specified plurality of source programs into a plurality of augmented object modules; and linking said plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said augmented object module, if said version type is an ordinary version type, said augmented object module is linked into said executable program, else said linking comprising: i) determining, based on program information within a database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then further compiling said augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; iii) updating said program information; and iv) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 24
Dependent Claim
14 words
The method of claim 18, wherein said specified version type is a debug version.
Claim 25
Dependent Claim
14 words
The method of claim 18, wherein said specified version type is an optimized version.
Claim 26
Dependent Claim
14 words
The method of claim 18, wherein said specified version type is an instrumented version.
Claim 27
Dependent Claim
20 words
The method of claim 18, wherein said augmented object module comprises a representation of said source program suitable for recompilation.
Claim 28
Dependent Claim
21 words
The method of claim 18, wherein said database is further to hold a representation of said source program suitable for recompilation.
Claim 29
Dependent Claim
30 words
The method of claim 18, wherein said augmented object module comprises a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 30
Dependent Claim
31 words
The method of claim 18, wherein said database is further to hold a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 31
Dependent Claim
28 words
The method of claim 18, wherein said augmented object module comprises a control-flow graph and an estimated run-time profile of each function held within said augmented object module.
Claim 32
Dependent Claim
32 words
The method of claim 18, wherein said database is further to hold a control-flow graph and an estimated run-time profile of each function held within said user-specified plurality of augmented object module.
Claim 33
Dependent Claim
16 words
The method of claim 18, wherein said linking further comprises determining what function-call sites are inlined.
Claim 34
Dependent Claim
19 words
The method of claim 18, wherein said linking further comprises determining what data objects are placed in fast memory.
Claim 35
Dependent Claim
33 words
The method of claim 18, wherein said user-specified version type indicates at least two different version types of said plurality of augmented object modules and said corresponding substitution object modules to be linked.
Claim 36
Dependent Claim
246 words
The method of claim 18, wherein said determining whether or not said database holds said substitution object modules comprises: a) performing an initial link to determine what functions within said specified plurality of augmented object modules are to be included in said executable program; b) for each augmented object module whose compiler timestamp changed between the version in said augmented object module and the version in said database, marking each corresponding substitution object module as not current; c) for each data object referenced in each function to be included, if the data object information of said data object has changed between the version in said augmented object module and the version in said database, marking all functions that reference that variable as having a propagating change; d) for each function to be included whose function equivalence representation changed between the version in said augmented object module and the version in said database, marking that function as having said propagating change; e) for each function to be included whose optimization decision changed between the version in said augmented object module and the version in said database, marking that function as having said propagating change; f) for each function having said propagating change, marking the functions that inline that function as having said propagating change, and continuing this step f) until no more functions are marked; g) for each substitution object module, marking it as not current if it contains any function marked as having said propagating change.
Claim 37
Dependent Claim
180 words
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: compiling a user-specified plurality of source programs into a plurality of augmented object modules; and linking said plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said augmented object module, if said version type is an ordinary version type, said augmented object module is linked into said executable, else said linking comprising: i) determining, based on program information within a database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then further compiling said augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; iii) updating said program information; and iv) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 38
Dependent Claim
180 words
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: compiling a user-specified plurality of source programs into a plurality of augmented object modules; and linking said plurality of augmented object modules into an executable program of a user-specified version type, wherein for each said augmented object module, if said version type is an ordinary version type, said augmented object module is linked into said executable, else said linking comprising: i) determining, based on program information within a database, whether or not said database holds a substitution object module that corresponds thereto, that is of said user-specified version type, and that is current; ii) if not, then further compiling said augmented object module into said corresponding substitution object module of said user-specified version type and placing the same into said database; iii) updating said program information; and iv) linking said corresponding substitution object module of said user-specified version type from said database into said executable program of said user-specified version type.
Claim 39
Dependent Claim
16 words
The computer-readable storage medium of claim 32, wherein said specified version type is a debug version.
Claim 40
Dependent Claim
16 words
The computer-readable storage medium of claim 32, wherein said specified version type is an optimized version.
Claim 41
Dependent Claim
16 words
The computer-readable storage medium of claim 32, wherein said specified version type is an instrumented version.
Claim 42
Dependent Claim
22 words
The computer-readable storage medium of claim 32, wherein said augmented object module comprises a representation of said source program suitable for recompilation.
Claim 43
Dependent Claim
23 words
The computer-readable storage medium of claim 32, wherein said database is further to hold a representation of said source program suitable for recompilation.
Claim 44
Dependent Claim
32 words
The computer-readable storage medium of claim 32, wherein said augmented object module comprises a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 45
Dependent Claim
33 words
The computer-readable storage medium of claim 32, wherein said database is further to hold a representation of said source program suitable for determining if different revisions of said source program are functionally equivalent.
Claim 46
Dependent Claim
30 words
The computer-readable storage medium of claim 32, wherein said augmented object module comprises a control-flow graph and an estimated run-time profile of each function held within said augmented object module.
Claim 47
Dependent Claim
34 words
The computer-readable storage medium of claim 32, wherein said database is further to hold a control-flow graph and an estimated run-time profile of each function held within said user-specified plurality of augmented object modules.
Claim 48
Dependent Claim
18 words
The computer-readable storage medium of claim 32, wherein said linking further comprises determining what function-call sites are inlined.
Claim 49
Dependent Claim
21 words
The computer-readable storage medium of claim 32, wherein said linking further comprises determining what data objects are placed in fast memory.
Claim 50
Dependent Claim
34 words
The computer-readable storage medium claim 32, wherein said user-specified version type indicates at least two different version types of said plurality of augmented object modules and said corresponding substitution object modules to be linked.
Claim 51
Dependent Claim
250 words
The computer software of claim 32, wherein said determining whether or not said database holds said substitution object modules comprises: a) performing an initial link to determine what functions within said specified plurality of augmented object modules are to be included in said executable program; b) for each augmented object module whose compiler timestamp changed between the version in said augmented object module and the version in said database, marking each corresponding substitution object module within said database as not current; c) for each data object referenced in each function to be included, if the data object information of said data object has changed between the version in said augmented object module and the version in said database, marking all functions that reference that variable as having a propagating change; d) for each function to be included whose function equivalence representation changed between the version in said augmented object module and the version in said database, marking that function as having said propagating change; e) for each function to be included whose optimization decision changed between the version in said augmented object module and the version in said database, marking that function as having said propagating change; f) for each function having said propagating change, marking the functions that inline that function as having said propagating change and continuing this step f) until no more functions are marked; g) for each substitution object module, marking it as not current if it contains any function marked as having said propagating change.