Patents by Inventor Allan H. Kielstra
Allan H. 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: 11886848Abstract: A method, system, and computer-readable medium for binary translation cause a binary translator to combine raw binary code and compiler-produced metadata associated with a compiled program module. The binary translator is caused to further reconcile, using the compiler-produced metadata, original compiler-produced control flow information with how lower-level machine instructions comprise a control flow in the raw binary code, and original compiler-produced aliasing information with how lower-level machine instructions access the memory locations described by the aliasing information according to predetermined criteria. The binary translator further caused to prevent, copy propagation of values in temporary variables for decimal computations beyond offsets in the machine instructions where the temporary variables are killed.Type: GrantFiled: May 25, 2022Date of Patent: January 30, 2024Assignee: International Business Machines CorporationInventors: Toshihiko Koju, Reid Copeland, David Kevin Siegwart, Jordan Ryan Zannier, Allan H. Kielstra
-
Patent number: 11847434Abstract: One or more computer processors receive a pattern string comprising a pointer to a pattern search point and a string comprising a pointer to a search point; determine a plausible search point within the string for the pattern character; execute a search string (SRST) instruction with the determined search point and the pattern character; compute a pattern offset comprising a difference between a first occurrence of the determined pattern character located within the pattern string but not in the correct position and a current pattern character position; execute a subsequent SRST instruction with the current pattern character position and the computed offset set as a new search point; and responsive to identifying all pattern characters in the correct position within the string based on the executed subsequent SRST instruction, transmit memory address associated with a substring comprised of the string and corresponding pattern characters in the correct position.Type: GrantFiled: June 24, 2021Date of Patent: December 19, 2023Assignee: International Business Machines CorporationInventors: Allan H. Kielstra, Ying Chau Raymond Mak, Ka Yin Lam, John Michael Chase
-
Publication number: 20230385041Abstract: A method, system, and computer-readable medium for binary translation cause a binary translator to combine raw binary code and compiler-produced metadata associated with a compiled program module. The binary translator is caused to further reconcile, using the compiler-produced metadata, original compiler-produced control flow information with how lower-level machine instructions comprise a control flow in the raw binary code, and original compiler-produced aliasing information with how lower-level machine instructions access the memory locations described by the aliasing information according to predetermined criteria. The binary translator further caused to prevent, copy propagation of values in temporary variables for decimal computations beyond offsets in the machine instructions where the temporary variables are killed.Type: ApplicationFiled: May 25, 2022Publication date: November 30, 2023Inventors: Toshihiko Koju, REID COPELAND, David Kevin Siegwart, Jordan Ryan Zannier, ALLAN H. KIELSTRA
-
Publication number: 20220413817Abstract: One or more computer processors receive a pattern string comprising a pointer to a pattern search point and a string comprising a pointer to a search point; determine a plausible search point within the string for the pattern character; execute a search string (SRST) instruction with the determined search point and the pattern character; compute a pattern offset comprising a difference between a first occurrence of the determined pattern character located within the pattern string but not in the correct position and a current pattern character position; execute a subsequent SRST instruction with the current pattern character position and the computed offset set as a new search point; and responsive to identifying all pattern characters in the correct position within the string based on the executed subsequent SRST instruction, transmit memory address associated with a substring comprised of the string and corresponding pattern characters in the correct position.Type: ApplicationFiled: June 24, 2021Publication date: December 29, 2022Inventors: ALLAN H. KIELSTRA, Ying Chau Raymond Mak, Ka Yin Lam, John Michael Chase
-
Patent number: 10776255Abstract: A method for automatic verification of optimization of high level constructs includes generating a first executable code by compiling a computer program that includes a high level construct. The compiling includes generating a first set of machine instructions for the high level construct and storing compile-time information for the high level construct. The method further includes optimizing the first executable code which includes converting the first executable code into an intermediate language representation. The optimization further includes generating a second executable code. For this, the method includes generating a second set of machine instructions for the high level construct from the intermediate language representation. If the behavior of the first set of machine instructions and the second set of machine instructions matches, the second set of machine instructions is included in the second executable code, otherwise the first set of machine instructions is included.Type: GrantFiled: July 31, 2019Date of Patent: September 15, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Iain Alexander Ireland, Reid Copeland, Allan H. Kielstra, David Siegwart, Toshihiko Koju
-
Patent number: 10761914Abstract: A package generated by a compiler of a computing environment is to be used in inter-process communication between one module and another module running in a single address space of the computing environment. The one module is one class of module and the other module is another class of module, in which the one class of module is different from the other class of module. The one module calls the other module using the inter-process communication, which employs the package generated by the compiler. The called module performs one or more operations, and the one module is placed in a wait state.Type: GrantFiled: October 16, 2018Date of Patent: September 1, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Allan H. Kielstra, Artur Kink
-
Patent number: 10678557Abstract: A predicted profile is generated for target code to be executed on a processor of the computing environment. The predicted profile is based on a profile of sampled code. The sampled code is a different version of code than the target code and is a complex build of modules for which it is difficult to determine which versions of the modules have been profiled. Based on the predicted profile for the target code, a determination is made of predicted execution information for the target code. Based on the determining the predicted execution information for the target code, an action is performed to facilitate processing within the computing environment.Type: GrantFiled: October 15, 2018Date of Patent: June 9, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: David K. Siegwart, Allan H. Kielstra
-
Publication number: 20200117469Abstract: A predicted profile is generated for target code to be executed on a processor of the computing environment. The predicted profile is based on a profile of sampled code. The sampled code is a different version of code than the target code and is a complex build of modules for which it is difficult to determine which versions of the modules have been profiled. Based on the predicted profile for the target code, a determination is made of predicted execution information for the target code. Based on the determining the predicted execution information for the target code, an action is performed to facilitate processing within the computing environment.Type: ApplicationFiled: October 15, 2018Publication date: April 16, 2020Inventors: David K. Siegwart, Allan H. Kielstra
-
Publication number: 20200117524Abstract: A package generated by a compiler of a computing environment is to be used in inter-process communication between one module and another module running in a single address space of the computing environment. The one module is one class of module and the other module is another class of module, in which the one class of module is different from the other class of module. The one module calls the other module using the inter-process communication, which employs the package generated by the compiler. The called module performs one or more operations, and the one module is placed in a wait state.Type: ApplicationFiled: October 16, 2018Publication date: April 16, 2020Inventors: Allan H. Kielstra, Artur Kink
-
Patent number: 10325844Abstract: A computer-implemented method includes, in a code transformation system, identifying save-to-return code instructions, function call code instructions, comparison code instructions, and exceptional code instructions. The function call code instructions are associated with the save-to-return code instructions. The comparison code instructions are associated with the save-to-return code instructions. The exceptional code instructions are associated with the comparison code instructions. A predefined proximity range based on a predefined proximity value as well as a proximity eligibility indicator are determined. The proximity eligibility indicator denotes whether the save-to-return code instructions and the comparison code instructions are within the predefined proximity range.Type: GrantFiled: February 1, 2018Date of Patent: June 18, 2019Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 10248554Abstract: Aspects of the present invention include a method, system and computer program product that embeds collected profiling test case information into a binary file of a computer program and subsequently recompiles the program. The method includes a processor specifying one or more test cases to be embedded into a compiled binary file, wherein the one or more test cases relate to at least a portion of a computer program representing a compilation unit; executing the one or more embedded test cases under the computer program; gathering performance data associated with the computer program as the one or more embedded test cases are executed; recompiling the compilation unit based on the performance data; and linking the computer program based on the performance data.Type: GrantFiled: November 14, 2016Date of Patent: April 2, 2019Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Allan H. Kielstra, Ramy Shahin, David K. Siegwart
-
Patent number: 10224271Abstract: A computer-implemented method includes, in a code transformation system, identifying save-to-return code instructions, function call code instructions, comparison code instructions, and exceptional code instructions. The function call code instructions are associated with the save-to-return code instructions. The comparison code instructions are associated with the save-to-return code instructions. The exceptional code instructions are associated with the comparison code instructions. A predefined proximity range based on a predefined proximity value as well as a proximity eligibility indicator are determined. The proximity eligibility indicator denotes whether the save-to-return code instructions and the comparison code instructions are within the predefined proximity range.Type: GrantFiled: December 12, 2017Date of Patent: March 5, 2019Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 10216489Abstract: An approach to selecting statements for inlining in a COBOL program involving creating a PERFORM Graph (PG), determining whether the PG is a Directed Acyclic Graph (DAG), responsive to determining the PG is not a DAG, identifying a maximum sub-graph DAG corresponding to the PG, computing one or more infeasible paths associated with a Control Flow Graph (CFG), wherein the infeasible paths are induced by PERFORM range calls associated with a plurality of edges corresponding to the PG or the maximum sub-graph DAG, ordering the plurality of edges corresponding to the PG or the maximum sub-graph DAG in a list, selecting one or more edges, based on traversing the list of the plurality of edges and generating an indicator of the one or more selected edges.Type: GrantFiled: February 2, 2018Date of Patent: February 26, 2019Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Patent number: 10209964Abstract: An approach to selecting statements for inlining in a COBOL program involving creating a PERFORM Graph (PG), determining whether the PG is a Directed Acyclic Graph (DAG), responsive to determining the PG is not a DAG, identifying a maximum sub-graph DAG corresponding to the PG, computing one or more infeasible paths associated with a Control Flow Graph (CFG), wherein the infeasible paths are induced by PERFORM range calls associated with a plurality of edges corresponding to the PG or the maximum sub-graph DAG, ordering the plurality of edges corresponding to the PG or the maximum sub-graph DAG in a list, selecting one or more edges, based on traversing the list of the plurality of edges and generating an indicator of the one or more selected edges.Type: GrantFiled: January 31, 2018Date of Patent: February 19, 2019Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Patent number: 10025563Abstract: An approach to selecting statements for inlining in a COBOL program involving creating a PERFORM Graph (PG), determining whether the PG is a Directed Acyclic Graph (DAG), responsive to determining the PG is not a DAG, identifying a maximum sub-graph DAG corresponding to the PG, computing one or more infeasible paths associated with a Control Flow Graph (CFG), wherein the infeasible paths are induced by PERFORM range calls associated with a plurality of edges corresponding to the PG or the maximum sub-graph DAG, ordering the plurality of edges corresponding to the PG or the maximum sub-graph DAG in a list, selecting one or more edges, based on traversing the list of the plurality of edges and generating an indicator of the one or more selected edges.Type: GrantFiled: September 14, 2016Date of Patent: July 17, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Publication number: 20180158769Abstract: A computer-implemented method includes, in a code transformation system, identifying save-to-return code instructions, function call code instructions, comparison code instructions, and exceptional code instructions. The function call code instructions are associated with the save-to-return code instructions. The comparison code instructions are associated with the save-to-return code instructions. The exceptional code instructions are associated with the comparison code instructions. A predefined proximity range based on a predefined proximity value as well as a proximity eligibility indicator are determined. The proximity eligibility indicator denotes whether the save-to-return code instructions and the comparison code instructions are within the predefined proximity range.Type: ApplicationFiled: February 1, 2018Publication date: June 7, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Publication number: 20180136915Abstract: An approach to selecting statements for inlining in a COBOL program involving creating a PERFORM Graph (PG), determining whether the PG is a Directed Acyclic Graph (DAG), responsive to determining the PG is not a DAG, identifying a maximum sub-graph DAG corresponding to the PG, computing one or more infeasible paths associated with a Control Flow Graph (CFG), wherein the infeasible paths are induced by PERFORM range calls associated with a plurality of edges corresponding to the PG or the maximum sub-graph DAG, ordering the plurality of edges corresponding to the PG or the maximum sub-graph DAG in a list, selecting one or more edges, based on traversing the list of the plurality of edges and generating an indicator of the one or more selected edges.Type: ApplicationFiled: January 31, 2018Publication date: May 17, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Publication number: 20180137039Abstract: Aspects of the present invention include a method, system and computer program product that embeds collected profiling test case information into a binary file of a computer program and subsequently recompiles the program. The method includes a processor specifying one or more test cases to be embedded into a compiled binary file, wherein the one or more test cases relate to at least a portion of a computer program representing a compilation unit; executing the one or more embedded test cases under the computer program; gathering performance data associated with the computer program as the one or more embedded test cases are executed; recompiling the compilation unit based on the performance data; and linking the computer program based on the performance data.Type: ApplicationFiled: November 14, 2016Publication date: May 17, 2018Inventors: Allan H. Kielstra, Ramy Shahin, David K. Siegwart
-
Publication number: 20180136916Abstract: An approach to selecting statements for inlining in a COBOL program involving creating a PERFORM Graph (PG), determining whether the PG is a Directed Acyclic Graph (DAG), responsive to determining the PG is not a DAG, identifying a maximum sub-graph DAG corresponding to the PG, computing one or more infeasible paths associated with a Control Flow Graph (CFG), wherein the infeasible paths are induced by PERFORM range calls associated with a plurality of edges corresponding to the PG or the maximum sub-graph DAG, ordering the plurality of edges corresponding to the PG or the maximum sub-graph DAG in a list, selecting one or more edges, based on traversing the list of the plurality of edges and generating an indicator of the one or more selected edges.Type: ApplicationFiled: February 2, 2018Publication date: May 17, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Patent number: 9959101Abstract: External references are resolved in a software compiling and linking environment by identifying a group of related external references and by processing the group of external references until a stopping condition is satisfied. The external references are processed by selecting a next external reference from the group of external references as a current external reference and by resolving the current external reference with a matching definition if a matching definition for the current external reference exists. The stopping condition is designated as being satisfied if either the selected external reference is resolved, or if each external reference in the group of external references has been selected.Type: GrantFiled: May 14, 2013Date of Patent: May 1, 2018Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Leona D. Baumgart, Allan H. Kielstra, John R. Ehrman, Barry L. Lichtenstein