Patents by Inventor Cary A. Coutant
Cary A. Coutant has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8458681Abstract: A method for optimizing the object code of a program is disclosed. A compiler generates, respectively, first and second object code segments for first and second source code segments of the program. If the two object code segments are determined to be identical, the compiler generates first and second debugging information entries in a compilation unit of the program and both entries include information for locating the first object code segment. The compiler inserts two entries into a call table in the compilation unit, each entry including information for locating a respective call site that invokes a respective source code segment within a call stack of the program and information for locating a respective debug information entry. The call table is used for associating an operation within the first object code segment with one of the first and second source code segments at runtime.Type: GrantFiled: June 30, 2009Date of Patent: June 4, 2013Assignee: Google Inc.Inventors: Cary A. Coutant, Christopher G. Demetriou
-
Patent number: 8429632Abstract: A method for debugging the object code of a program is disclosed. While executing an object code segment on an information processing device, a debugger receives a location identifier associated with the object code segment and identifies a call site within a call stack of the program using the location identifier. The call site is responsible for invoking the execution of the object code segment. Next, the debugger scans a call table for an entry of the call site that includes information for locating a debugging information entry within a compilation unit of the program. The debugger retrieves the debugging information entry from the compilation unit using the location information and identifies a unique one of multiple different source code segments as the one corresponding to the object code segment using a source code segment identifier in the debugging information entry.Type: GrantFiled: June 30, 2009Date of Patent: April 23, 2013Assignee: Google Inc.Inventors: Cary A. Coutant, Christopher G. Demetriou
-
Patent number: 7334112Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.Type: GrantFiled: November 6, 2003Date of Patent: February 19, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
-
Patent number: 7272702Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.Type: GrantFiled: November 6, 2003Date of Patent: September 18, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
-
Patent number: 7065754Abstract: Method and apparatus for switching between multiple implementations of a routine. A plurality of implementations of a routine are compiled into respective object code modules. In one embodiment, each implementation of the routine is adapted for a particular hardware configuration. The different object code modules are associated with respective sets of hardware characteristics and with the name of the routine. When the application program and library are loaded into memory of the computer system, a references to the routine are resolved using the sets of hardware characteristics and the hardware configuration of the system.Type: GrantFiled: October 31, 2000Date of Patent: June 20, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Cary A. Coutant, Carol L. Thompson
-
Patent number: 6993750Abstract: A method and system for enabling the registration of dynamically generated code and corresponding unwind information. In one embodiment, the present invention creates a module which includes data related to dynamically generated code and corresponding unwind information. The present embodiment also provides an application program interface which allows the data to be registered such that dynamic registration of the dynamically generated code and the corresponding unwind information is enabled.Type: GrantFiled: December 13, 2001Date of Patent: January 31, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Robert Hundt, Muralitharan Vijayasundaram, Cary A. Coutant, Kannan Narasimhan
-
Publication number: 20040123083Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.Type: ApplicationFiled: November 6, 2003Publication date: June 24, 2004Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
-
Publication number: 20040093486Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.Type: ApplicationFiled: November 6, 2003Publication date: May 13, 2004Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
-
Patent number: 6665671Abstract: A system and method are described for optimizing access of shared data. Briefly described, in architecture, the system can be implemented as follows. The data load optimization system includes a linkage table that contains at least one unresolved data module accessible by a computer program. The linkage table also includes a load determination logic that determines the location of the unresolved data module at load time of the computer program, and a load modification logic that modifies the load instruction in the computer program, at load time of the computer program, to directly load the unresolved data module at the location. The present invention can also be viewed as providing a method for efficiently accessing shared data.Type: GrantFiled: April 4, 2001Date of Patent: December 16, 2003Assignee: Hewlett-Packard Development Company, L.P.Inventor: Cary A. Coutant
-
Patent number: 6665793Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.Type: GrantFiled: December 28, 1999Date of Patent: December 16, 2003Assignee: Institute for the Development of Emerging Architectures, L.L.C.Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
-
Publication number: 20030167457Abstract: The present invention provides a system and method for providing a graphic representation of code characteristic and optimizations performed. In architecture, the system includes an optimizer display tool that indicates at least one instruction characteristic in a program and comprises logic that acquires a block of code in the program, and logic for analyzing the block of code for the at least one instruction characteristic. The optimizer display tool further comprises logic for generating a unique graphical indicator for the at least one instruction characteristic, and logic for displaying the unique graphical indicator with the block of code to indicate that the at least one instruction characteristic is present in the block of code.Type: ApplicationFiled: March 1, 2002Publication date: September 4, 2003Inventors: Carol L. Thompson, Cary A. Coutant
-
Publication number: 20030115582Abstract: A method and system for enabling the registration of dynamically generated code and corresponding unwind information. In one embodiment, the present invention creates a module which includes data related to dynamically generated code and corresponding unwind information. The present embodiment also provides an application program interface which allows the data to be registered such that dynamic registration of the dynamically generated code and the corresponding unwind information is enabled.Type: ApplicationFiled: December 13, 2001Publication date: June 19, 2003Inventors: Robert Hundt, Muralitharan Vijayasundaram, Cary A. Coutant, Kannan Narasimhan
-
Publication number: 20020147718Abstract: A system and method are described for optimizing access of shared data. Briefly described, in architecture, the system can be implemented as follows. The data load optimization system includes a linkage table that contains at least one unresolved data module accessible by a computer program. The linkage table also includes a load determination logic that determines the location of the unresolved data module at load time of the computer program, and a load modification logic that modifies the load instruction in the computer program, at load time of the computer program, to directly load the unresolved data module at the location. The present invention can also be viewed as providing a method for efficiently accessing shared data.Type: ApplicationFiled: April 4, 2001Publication date: October 10, 2002Inventor: Cary A. Coutant
-
Patent number: 6314513Abstract: A computer-implemented method and apparatus for transferring the contents of a general register, in a register stack, to a location in a backing store in a main memory are described. When transferring the contents of a general register to a location in the backing store, the invention proposes collecting attribute bits included in each general register of a predetermined group of registers in a temporary collection register. Once the temporary collection register has been filled, the contents of this register are written to the next available location in the backing store. Similarly, on the restoration of registers from the backing store, a collection of attribute bits saved in the backing register is transferred to a temporary collection register. Thereafter, each attribute bit is saved together with associated data into a general register, thereby to restore the former contents of each general register.Type: GrantFiled: November 23, 1998Date of Patent: November 6, 2001Assignee: Intel CorporationInventors: Jonathon K. Ross, Cary A. Coutant, Carol L. Thompson, Achmed R. Zahir
-
Patent number: 6293712Abstract: A computer-implemented method of constructing a stack unwind data structure is described. In one embodiment, the method commences when a procedure, which comprises part of the computer program, is compiled. The stack unwind data structure construction commences with determining whether the called procedure complies with a default condition for a predetermined characteristic. For example, it may be determined whether a stack frame for the procedure is of a fixed or variable size, with a fixed size stack frame comprising a default condition. If the procedure does not comply with, or varies from, the default condition for this predetermined characteristic, then an unwind record for the procedure is generated, and included within an entry associated with the procedure in the stack unwind data structure. Alternatively, should the procedure comply with the default condition, this unwind record is not generated and accordingly not included within the stack unwind data structure.Type: GrantFiled: September 30, 1997Date of Patent: September 25, 2001Assignee: Institute for the Development of Emerging Architectures, LLCInventor: Cary A. Coutant
-
Patent number: 6263401Abstract: A computer-implemented method and apparatus for transferring the contents of a general register, in a register stack, to a location in a backing store in a main memory are described. When transferring the contents of a general register to a location in the backing store, the invention proposes collecting attribute bits included in each general register of a predetermined group of registers in a temporary collection register. Once the temporary collection register has been filled, the contents of this register are written to the next available location in the backing store. Similarly, on the restoration of registers from the backing store, a collection of attribute bits saved in the backing register is transferred to a temporary collection register. Thereafter, each attribute bit is saved together with associated data into a general register, thereby to restore the former contents of each general register.Type: GrantFiled: September 30, 1997Date of Patent: July 17, 2001Assignee: Institute for the Development of Emerging Architectures, L.L.C.Inventors: Jonathan K. Ross, Cary A. Coutant, Carol L. Thompson, Achmed R. Zahir