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: 8839217Abstract: 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: GrantFiled: March 15, 2013Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventor: Allan Henry Kielstra
-
Patent number: 8312439Abstract: 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: GrantFiled: April 6, 2009Date of Patent: November 13, 2012Assignee: International Business Machines CorporationInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Patent number: 8261251Abstract: 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: GrantFiled: October 22, 2008Date of Patent: September 4, 2012Assignee: International Business Machines CorporationInventor: Allan Henry Kielstra
-
Patent number: 7913240Abstract: 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: GrantFiled: February 5, 2009Date of Patent: March 22, 2011Assignee: International Business Machines CorporationInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Patent number: 7761667Abstract: 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: GrantFiled: August 12, 2008Date of Patent: July 20, 2010Assignee: International Business Machines CorporationInventors: Christopher Michael Donawa, Allan Henry Kielstra
-
Publication number: 20090193404Abstract: 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: ApplicationFiled: April 6, 2009Publication date: July 30, 2009Applicant: International Business Machines CorporationInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Publication number: 20090144710Abstract: 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: ApplicationFiled: February 5, 2009Publication date: June 4, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Patent number: 7530059Abstract: 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: GrantFiled: February 18, 2005Date of Patent: May 5, 2009Assignee: International Business Machines CorporationInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Publication number: 20090044040Abstract: 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: ApplicationFiled: October 22, 2008Publication date: February 12, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Allan Henry Kielstra
-
Patent number: 7490320Abstract: 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: GrantFiled: February 18, 2005Date of Patent: February 10, 2009Assignee: International Business Machines CorporationInventors: Allan Henry Kielstra, Levon Sassoon Stepanian, Kevin Alexander Stoodley
-
Publication number: 20080301375Abstract: 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: ApplicationFiled: August 12, 2008Publication date: December 4, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Christopher Michael Donawa, Allan Henry Kielstra
-
Patent number: 7451438Abstract: 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: GrantFiled: December 15, 2004Date of Patent: November 11, 2008Assignee: International Business Machines CorporationInventors: Allan Henry Kielstra, Kevin James Langman
-
Patent number: 7448029Abstract: 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: GrantFiled: April 26, 2004Date of Patent: November 4, 2008Assignee: International Business Machines CorporationInventor: Allan Henry Kielstra
-
Patent number: 7421540Abstract: 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: GrantFiled: May 3, 2005Date of Patent: September 2, 2008Assignee: International Business Machines CorporationInventors: Christopher Michael Donawa, Allan Henry Kielstra