Patents by Inventor Allan Henry Kielstra

Allan Henry Kielstra 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: 8839217
    Abstract: A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventor: Allan Henry Kielstra
  • Patent number: 8312439
    Abstract: A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.
    Type: Grant
    Filed: April 6, 2009
    Date of Patent: November 13, 2012
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Patent number: 8261251
    Abstract: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.
    Type: Grant
    Filed: October 22, 2008
    Date of Patent: September 4, 2012
    Assignee: International Business Machines Corporation
    Inventor: Allan Henry Kielstra
  • Patent number: 7913240
    Abstract: A method, apparatus, and computer instructions for transforming JAVA Native Interface function calls to constants, internal just-in-time (JIT) compiler operations or simpler intermediate representation. A compiler generates plurality of intermediate representations for a plurality of native interface function calls. During inlining of native code, matching is performed on each native function call (against this list) and a list of native interface function calls is generated. For each native interface function call, a (JIT) call transformer attempts to replace the native interface function call with a constant, internal JIT compiler operation or a simpler intermediate representation depending on the type of native interface function call.
    Type: Grant
    Filed: February 5, 2009
    Date of Patent: March 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Patent number: 7761667
    Abstract: A mechanism is provided that identifies instructions that access storage and may be candidates for catch prefetching. The mechanism augments these instructions so that any given instance of the instruction operates in one of four modes, namely normal, unexecuted, data gathering, and validation. In the normal mode, the instruction merely performs the function specified in the software runtime environment. An instruction in unexecuted mode, upon the next execution, is placed in data gathering mode. When an instruction in the data gathering mode is encountered, the mechanism of the present invention collects data to discover potential fixed storage access patterns. When an instruction is in validation mode, the mechanism of the present invention validates the presumed fixed storage access patterns.
    Type: Grant
    Filed: August 12, 2008
    Date of Patent: July 20, 2010
    Assignee: International Business Machines Corporation
    Inventors: Christopher Michael Donawa, Allan Henry Kielstra
  • Publication number: 20090193404
    Abstract: A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.
    Type: Application
    Filed: April 6, 2009
    Publication date: July 30, 2009
    Applicant: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Publication number: 20090144710
    Abstract: A method, apparatus, and computer instructions are provided for transforming Java Native Interface function calls to constants, internal just-in-time compiler operations or simpler intermediate representation. A compiler generates a plurality of intermediate representations for a plurality of native interface function calls. During inlining of native code, matching is performed on each native function call (against this list) and a list of native interface function calls is generated. For each native interface function call, a JIT call transformer attempts to replace the native interface function call with a constant, internal just-in-time compiler operation or a simpler intermediate representation depending on the type of native interface function call.
    Type: Application
    Filed: February 5, 2009
    Publication date: June 4, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Patent number: 7530059
    Abstract: A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.
    Type: Grant
    Filed: February 18, 2005
    Date of Patent: May 5, 2009
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Publication number: 20090044040
    Abstract: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.
    Type: Application
    Filed: October 22, 2008
    Publication date: February 12, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Allan Henry Kielstra
  • Patent number: 7490320
    Abstract: A method and apparatus for transforming JAVA Native Interface function calls to constants, internal just-in-time (JIT) compiler operations or simpler intermediate representation. A compiler generates a plurality of intermediate representations for a plurality of native interface function calls. During inlining of native code, matching is performed on each native function call (against this list) and a list of native interface function calls is generated. For each native interface function call, a (JIT) call transformer attempts to replace the native interface function call with a constant, internal JIT compiler operation or a simpler intermediate representation depending on the type of native interface function call.
    Type: Grant
    Filed: February 18, 2005
    Date of Patent: February 10, 2009
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
  • Publication number: 20080301375
    Abstract: A mechanism is provided that identifies instructions that access storage and may be candidates for catch prefetching. The mechanism augments these instructions so that any given instance of the instruction operates in one of four modes, namely normal, unexecuted, data gathering, and validation. In the normal mode, the instruction merely performs the function specified in the software runtime environment. An instruction in unexecuted mode, upon the next execution, is placed in data gathering mode. When an instruction in the data gathering mode is encountered, the mechanism of the present invention collects data to discover potential fixed storage access patterns. When an instruction is in validation mode, the mechanism of the present invention validates the presumed fixed storage access patterns.
    Type: Application
    Filed: August 12, 2008
    Publication date: December 4, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Christopher Michael Donawa, Allan Henry Kielstra
  • Patent number: 7451438
    Abstract: A technique for identifying and executing synchronized read regions and synchronized write regions is provided. The technique processes program code with a software tool to convert the code to an internal representation for the software tool and constructs a control flow graph of code blocks which also identifies the entry and exit points for each region of code subject to a lock. For each code block in the control flow graph, visibility analysis is performed. Each determined entry and exit point is moved to enclose the smallest set of code blocks subject to a lock which can be achieved without altering code semantics. A set of trees is created to represent the manner in which the synchronized regions are nested. If the tree contains at least one block previously identified, then the tree is marked a write. Otherwise, the tree is marked a read tree.
    Type: Grant
    Filed: December 15, 2004
    Date of Patent: November 11, 2008
    Assignee: International Business Machines Corporation
    Inventors: Allan Henry Kielstra, Kevin James Langman
  • Patent number: 7448029
    Abstract: An error handling operation for checking of an array access in program code is modified during compilation thereof. A sequentially arranged null checking operation and array bounds checking operation for the array access are located. The array bounds checking operation has a corresponding error handling operation operable for setting an array bounds error. The located sequentially arranged null checking operation is removed. The corresponding error handling operation for the located sequentially arranged array bounds checking operation is modified to perform the removed null checking operation during execution of the program code.
    Type: Grant
    Filed: April 26, 2004
    Date of Patent: November 4, 2008
    Assignee: International Business Machines Corporation
    Inventor: Allan Henry Kielstra
  • Patent number: 7421540
    Abstract: A mechanism is provided that identifies instructions that access storage and may be candidates for cache prefetching. The mechanism augments these instructions so that any given instance of the instruction operates in one of four modes, namely normal, unexecuted, data gathering, and validation. In the normal mode, the instruction merely performs the function specified in the software runtime environment. An instruction in unexecuted mode, upon the next execution, is placed in data gathering mode. When an instruction in the data gathering mode is encountered, the mechanism of the present invention collects data to discover potential fixed storage access patterns. When an instruction is in validation mode, the mechanism of the present invention validates the presumed fixed storage access patterns.
    Type: Grant
    Filed: May 3, 2005
    Date of Patent: September 2, 2008
    Assignee: International Business Machines Corporation
    Inventors: Christopher Michael Donawa, Allan Henry Kielstra