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: 11886848
    Abstract: 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: Grant
    Filed: May 25, 2022
    Date of Patent: January 30, 2024
    Assignee: International Business Machines Corporation
    Inventors: Toshihiko Koju, Reid Copeland, David Kevin Siegwart, Jordan Ryan Zannier, Allan H. Kielstra
  • Patent number: 11847434
    Abstract: 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: Grant
    Filed: June 24, 2021
    Date of Patent: December 19, 2023
    Assignee: International Business Machines Corporation
    Inventors: Allan H. Kielstra, Ying Chau Raymond Mak, Ka Yin Lam, John Michael Chase
  • Publication number: 20230385041
    Abstract: 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: Application
    Filed: May 25, 2022
    Publication date: November 30, 2023
    Inventors: Toshihiko Koju, REID COPELAND, David Kevin Siegwart, Jordan Ryan Zannier, ALLAN H. KIELSTRA
  • Publication number: 20220413817
    Abstract: 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: Application
    Filed: June 24, 2021
    Publication date: December 29, 2022
    Inventors: ALLAN H. KIELSTRA, Ying Chau Raymond Mak, Ka Yin Lam, John Michael Chase
  • Patent number: 10776255
    Abstract: 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: Grant
    Filed: July 31, 2019
    Date of Patent: September 15, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Iain Alexander Ireland, Reid Copeland, Allan H. Kielstra, David Siegwart, Toshihiko Koju
  • Patent number: 10761914
    Abstract: 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: Grant
    Filed: October 16, 2018
    Date of Patent: September 1, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Allan H. Kielstra, Artur Kink
  • Patent number: 10678557
    Abstract: 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: Grant
    Filed: October 15, 2018
    Date of Patent: June 9, 2020
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: David K. Siegwart, Allan H. Kielstra
  • Publication number: 20200117469
    Abstract: 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: Application
    Filed: October 15, 2018
    Publication date: April 16, 2020
    Inventors: David K. Siegwart, Allan H. Kielstra
  • Publication number: 20200117524
    Abstract: 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: Application
    Filed: October 16, 2018
    Publication date: April 16, 2020
    Inventors: Allan H. Kielstra, Artur Kink
  • Patent number: 10325844
    Abstract: 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: Grant
    Filed: February 1, 2018
    Date of Patent: June 18, 2019
    Assignee: International Business Machines Corporation
    Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
  • Patent number: 10248554
    Abstract: 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: Grant
    Filed: November 14, 2016
    Date of Patent: April 2, 2019
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Allan H. Kielstra, Ramy Shahin, David K. Siegwart
  • Patent number: 10224271
    Abstract: 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: Grant
    Filed: December 12, 2017
    Date of Patent: March 5, 2019
    Assignee: International Business Machines Corporation
    Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
  • Patent number: 10216489
    Abstract: 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: Grant
    Filed: February 2, 2018
    Date of Patent: February 26, 2019
    Assignee: International Business Machines Corporation
    Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
  • Patent number: 10209964
    Abstract: 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: Grant
    Filed: January 31, 2018
    Date of Patent: February 19, 2019
    Assignee: International Business Machines Corporation
    Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
  • Patent number: 10025563
    Abstract: 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: Grant
    Filed: September 14, 2016
    Date of Patent: July 17, 2018
    Assignee: International Business Machines Corporation
    Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
  • Publication number: 20180158769
    Abstract: 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: Application
    Filed: February 1, 2018
    Publication date: June 7, 2018
    Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
  • Publication number: 20180136915
    Abstract: 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: Application
    Filed: January 31, 2018
    Publication date: May 17, 2018
    Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
  • Publication number: 20180137039
    Abstract: 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: Application
    Filed: November 14, 2016
    Publication date: May 17, 2018
    Inventors: Allan H. Kielstra, Ramy Shahin, David K. Siegwart
  • Publication number: 20180136916
    Abstract: 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: Application
    Filed: February 2, 2018
    Publication date: May 17, 2018
    Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
  • Patent number: 9959101
    Abstract: 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: Grant
    Filed: May 14, 2013
    Date of Patent: May 1, 2018
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Leona D. Baumgart, Allan H. Kielstra, John R. Ehrman, Barry L. Lichtenstein