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: 9952840Abstract: 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 15, 2012Date of Patent: April 24, 2018Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Leona D. Baumgart, Allan H. Kielstra, John R. Ehrman, Barry L. Lichtenstein
-
Publication number: 20180101369Abstract: 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: December 12, 2017Publication date: April 12, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 9921816Abstract: 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: March 8, 2016Date of Patent: March 20, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Publication number: 20180074802Abstract: 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 23, 2017Publication date: March 15, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Publication number: 20180074794Abstract: 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: September 14, 2016Publication date: March 15, 2018Inventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Patent number: 9916141Abstract: 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: October 15, 2015Date of Patent: March 13, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 9904528Abstract: 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 23, 2017Date of Patent: February 27, 2018Assignee: International Business Machines CorporationInventors: Iain A. Ireland, Allan H. Kielstra, Artur Kink, Muntasir A. Mallick
-
Patent number: 9798528Abstract: A solution for cooperative data prefetching that enables software control of a memory-side data prefetch and/or a processor-side data prefetch is provided. In one embodiment, the invention provides a solution for generating an application, in which access to application data for the application is improved (e.g., optimized) in program code for the application. In particular, a push request, for performing a memory-side data prefetch of the application data, and a prefetch request, for performing a processor-side data prefetch, are added to the program code. The memory-side data prefetch results in the application data being copied from a first data store to a second data store that is faster than the first data store while the processor-side data prefetch results in the application data being copied from the second data store to a third data store that is faster than the second data store.Type: GrantFiled: September 13, 2006Date of Patent: October 24, 2017Assignee: International Business Machines CorporationInventors: Yaoqing Gao, Gheorghe C. Cascaval, Allan H. Kielstra, Robert B. Tremaine, Michael E. Wazlowski, Lixin Zhang
-
Publication number: 20170109146Abstract: 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: October 15, 2015Publication date: April 20, 2017Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Publication number: 20170109145Abstract: 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: March 8, 2016Publication date: April 20, 2017Inventors: Iain A. Ireland, Allan H. Kielstra, Muntasir A. Mallick
-
Patent number: 9547483Abstract: For optimizing executable code, during a first compilation of a source code, a set of signatures is inserted in a first executable code. A signature in the set of signatures includes a combination of executable instructions. During an execution of the first executable in a debugger an instruction to call a counter code is executed from a location of the signature to increment a counter corresponding to the signature. A value of the counter is provided to a compiler to correspond with the location of the signature in the first executable code. The source code is recompiled into a second executable code, optimizing a portion of the second executable code responsive to the value exceeding a threshold. The portion is related to the location of the signature in the first executable code.Type: GrantFiled: November 6, 2015Date of Patent: January 17, 2017Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Alan S. Boxall, Steven Cooper, Allan H. Kielstra, Trong Truong
-
Publication number: 20140075423Abstract: 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: ApplicationFiled: September 13, 2012Publication date: March 13, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Allan H. Kielstra
-
Patent number: 8615748Abstract: A computer-implemented process for deductive reaching definition analysis receives a control flow graph to form a set of received blocks and edges, performs traditional reaching definitions to produce bit-vectors OUT(b), GEN(b) and KILL(b) for each block in the set of received blocks and receives impossibility indicators for a set of definitions that are impossible on specific edges. The computer-implemented process further performs deduction operations using a combination of the bit-vectors and impossibility indicators to deduce that additional definitions cannot reach certain blocks to create resulting reachability information and provides the resulting reachability information as a result to a requestor. A related system and program product is also provided.Type: GrantFiled: October 13, 2010Date of Patent: December 24, 2013Assignee: International Business Machines CorporationInventors: Patrick R. Doyle, Allan H. Kielstra, Pramod Ramarao
-
Publication number: 20130311978Abstract: 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: ApplicationFiled: May 15, 2012Publication date: November 21, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Leona D. Baumgart, Allan H. Kielstra, John R. Ehrman, Barry L. Lichtenstein
-
Publication number: 20130311979Abstract: 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: ApplicationFiled: May 14, 2013Publication date: November 21, 2013Applicant: International Business Machines CorporationInventors: Leona D. Baumgart, Allan H. Kielstra, John R. Ehrman, Barry L. Lichtenstein
-
Patent number: 8402429Abstract: In an embodiment, a predicate condition that compares a predicate variable to a compared value is determined. The predicate condition is in a predicate block that exists on a path to a current block that accesses a current variable. A decision is made whether the current variable and the predicate variable are defined by a sub-clique and whether a member of the sub-clique sets the predicate variable to a predicate value that causes control flow to take the path from the predicate block to the current block. Upon a determination that the current variable and the predicate variable are defined by the sub-clique and the member of the sub-clique sets the predicate variable to the predicate value that causes control flow to take the path from the predicate block to the current block, then contents for the current variable are calculated and first object code is generated, which loads the contents.Type: GrantFiled: August 13, 2010Date of Patent: March 19, 2013Assignee: International Business Machines CorporationInventor: Allan H. Kielstra
-
Publication number: 20120117553Abstract: An enhanced function-descriptor-based dispatch in a multi-linkage environment receives user code containing a function compiled in a supplementary linkage convention of a caller to form an invoked function and determines whether the supplementary linkage convention of the caller for the invoked function matches a supplementary linkage implementation provided by a library. Responsive to a determination that the supplementary linkage convention of the caller for the invoked function matches a supplementary linkage implementation provided by the library, an embodiment selects the supplementary linkage implementation provided by the library and dispatches the invoked function in the selected supplementary linkage implementation provided by the library.Type: ApplicationFiled: October 8, 2011Publication date: May 10, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Allan H. Kielstra, Andrew R. Low, Marcel Mitran, Kishor V. Patil, Ivan K. Y. Sham
-
Patent number: 8136103Abstract: A method for combined static and dynamic compilation of program code to remove delinquent loads can include statically compiling source code into executable code with instrumented sections each being suspected of including a delinquent load, and also into a separate intermediate language representation with annotated portions each corresponding to one of the instrumented sections. The method also can include executing the instrumented sections repeatedly and monitoring cache misses for each execution. Finally, the method can include dynamically recompiling selected ones of the instrumented sections using corresponding ones of the annotated portions of the separate intermediate language representation only after a threshold number of executions of the selected ones of the instrumented sections, each recompilation include a pre-fetch directive at a pre-fetch distances tuned to avoid the delinquent load.Type: GrantFiled: March 28, 2008Date of Patent: March 13, 2012Assignee: International Business Machines CorporationInventors: Gheorghe C. Cascaval, Yaoqing Gao, Allan H. Kielstra, Kevin A. Stoodley
-
Publication number: 20110191761Abstract: A computer-implemented process for deductive reaching definition analysis receives a control flow graph to form a set of received blocks and edges, performs traditional reaching definitions to produce bit-vectors OUT(b), GEN(b) and KILL(b) for each block in the set of received blocks and receives impossibility indicators for a set of definitions that are impossible on specific edges. The computer-implemented process further performs deduction operations using a combination of the bit-vectors and impossibility indicators to deduce that additional definitions cannot reach certain blocks to create resulting reachability information and provides the resulting reachability information as a result to a requestor. A related system and program product is also provided.Type: ApplicationFiled: October 13, 2010Publication date: August 4, 2011Applicant: International Business Machines CorporationInventors: Patrick R. Doyle, Allan H. Kielstra, Pramod Ramarao
-
Publication number: 20110055808Abstract: In an embodiment, a predicate condition that compares a predicate variable to a compared value is determined. The predicate condition is in a predicate block that exists on a path to a current block that accesses a current variable. A decision is made whether the current variable and the predicate variable are defined by a sub-clique and whether a member of the sub-clique sets the predicate variable to a predicate value that causes control flow to take the path from the predicate block to the current block. Upon a determination that the current variable and the predicate variable are defined by the sub-clique and the member of the sub-clique sets the predicate variable to the predicate value that causes control flow to take the path from the predicate block to the current block, then contents for the current variable are calculated and first object code is generated, which loads the contents.Type: ApplicationFiled: August 13, 2010Publication date: March 3, 2011Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: ALLAN H. KIELSTRA