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: 8458681
    Abstract: 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: Grant
    Filed: June 30, 2009
    Date of Patent: June 4, 2013
    Assignee: Google Inc.
    Inventors: Cary A. Coutant, Christopher G. Demetriou
  • Patent number: 8429632
    Abstract: 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: Grant
    Filed: June 30, 2009
    Date of Patent: April 23, 2013
    Assignee: Google Inc.
    Inventors: Cary A. Coutant, Christopher G. Demetriou
  • Patent number: 7334112
    Abstract: 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: Grant
    Filed: November 6, 2003
    Date of Patent: February 19, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
  • Patent number: 7272702
    Abstract: 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: Grant
    Filed: November 6, 2003
    Date of Patent: September 18, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
  • Patent number: 7065754
    Abstract: 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: Grant
    Filed: October 31, 2000
    Date of Patent: June 20, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Cary A. Coutant, Carol L. Thompson
  • Patent number: 6993750
    Abstract: 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: Grant
    Filed: December 13, 2001
    Date of Patent: January 31, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Robert Hundt, Muralitharan Vijayasundaram, Cary A. Coutant, Kannan Narasimhan
  • Publication number: 20040123083
    Abstract: 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: Application
    Filed: November 6, 2003
    Publication date: June 24, 2004
    Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
  • Publication number: 20040093486
    Abstract: 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: Application
    Filed: November 6, 2003
    Publication date: May 13, 2004
    Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
  • Patent number: 6665671
    Abstract: 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: Grant
    Filed: April 4, 2001
    Date of Patent: December 16, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Cary A. Coutant
  • Patent number: 6665793
    Abstract: 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: Grant
    Filed: December 28, 1999
    Date of Patent: December 16, 2003
    Assignee: 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: 20030167457
    Abstract: 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: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Inventors: Carol L. Thompson, Cary A. Coutant
  • Publication number: 20030115582
    Abstract: 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: Application
    Filed: December 13, 2001
    Publication date: June 19, 2003
    Inventors: Robert Hundt, Muralitharan Vijayasundaram, Cary A. Coutant, Kannan Narasimhan
  • Publication number: 20020147718
    Abstract: 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: Application
    Filed: April 4, 2001
    Publication date: October 10, 2002
    Inventor: Cary A. Coutant
  • Patent number: 6314513
    Abstract: 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: Grant
    Filed: November 23, 1998
    Date of Patent: November 6, 2001
    Assignee: Intel Corporation
    Inventors: Jonathon K. Ross, Cary A. Coutant, Carol L. Thompson, Achmed R. Zahir
  • Patent number: 6293712
    Abstract: 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: Grant
    Filed: September 30, 1997
    Date of Patent: September 25, 2001
    Assignee: Institute for the Development of Emerging Architectures, LLC
    Inventor: Cary A. Coutant
  • Patent number: 6263401
    Abstract: 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: Grant
    Filed: September 30, 1997
    Date of Patent: July 17, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jonathan K. Ross, Cary A. Coutant, Carol L. Thompson, Achmed R. Zahir