Patents by Inventor Roch G. Archambault
Roch G. Archambault 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: 10095491Abstract: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.Type: GrantFiled: July 28, 2015Date of Patent: October 9, 2018Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Stephen Curial, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Patent number: 9946523Abstract: A code region of an application is instrumented by a multi-pass profiler with first annotations for generating profile data. The application is executed with the first annotations, wherein executing the application with the first annotations generates first profile data for the code region. The multi-pass profiler identifies, from the first profile data, the code region as a delinquent code region. The multi-pass profiler determines second annotations based, at least in part, on the first profile data and the at least one of the first annotations that defines the delinquent code region. The multi-pass profiler instruments, based on the first profile data, a code sub-region of the delinquent code region with the second annotations for generating profile data. The application is executed with second annotations, wherein executing the application with the second annotations generates second profile data for the code sub-region.Type: GrantFiled: July 6, 2010Date of Patent: April 17, 2018Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Yaoqing Gao, Allan R. Martin, Mark P. Mendell, Raul E. Silvera, Graham Yiu
-
Publication number: 20150331682Abstract: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.Type: ApplicationFiled: July 28, 2015Publication date: November 19, 2015Inventors: Roch G. Archambault, Shimin Cui, Stephen Curial, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Patent number: 9110684Abstract: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.Type: GrantFiled: July 10, 2007Date of Patent: August 18, 2015Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Stephen Curial, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Patent number: 8458679Abstract: May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data.Type: GrantFiled: September 22, 2010Date of Patent: June 4, 2013Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Yaoqing Gao
-
Patent number: 8413127Abstract: A mechanism for minimizing effective memory latency without unnecessary cost through fine-grained software-directed data prefetching using integrated high-level and low-level code analysis and optimizations is provided. The mechanism identifies and classifies streams, identifies data that is most likely to incur a cache miss, exploits effective hardware prefetching to determine the proper number of streams to be prefetched, exploits effective data prefetching on different types of streams in order to eliminate redundant prefetching and avoid cache pollution, and uses high-level transformations with integrated lower level cost analysis in the instruction scheduler to schedule prefetch instructions effectively.Type: GrantFiled: December 22, 2009Date of Patent: April 2, 2013Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Robert J. Blainey, Yaoqing Gao, Allan R. Martin, James L. McInnes, Francis Patrick O'Connell
-
Patent number: 8191057Abstract: Systems, methods and computer products for compiler support for aggressive safe load speculation. Exemplary embodiments include a method for aggressive safe load speculation for a compiler in a computer system, the method including building a control flow graph, identifying both countable and non-countable loops, gathering a set of candidate loops for load speculation, and for each candidate loop in the set of candidate loops gathered for load speculation, computing an estimate of the iteration count, delay cycles, and code size, performing a profitability analysis and determining an unroll factor based on the delay cycles and the code size, transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively and performing low-level instruction scheduling on the generated unrolled main loop.Type: GrantFiled: August 27, 2007Date of Patent: May 29, 2012Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Geoffrey O. Blandy, Roland Froese, Yaoqing Gao, Liangxiao Hu, James L. McInnes, Raul E. Silvera
-
Patent number: 8117604Abstract: A method for implementing architecture cloning including: constructing a program call graph in a link phase of interprocedural analysis to model calling relationships between one or more procedures in a program; analyzing the program call graph to obtain information about the program; analyzing the program to identify the one or more procedures subject to architecture cloning; determining feasibility of architecture cloning; marking the one or more procedures in the program suitable for architecture cloning; naming the one or more procedures in the program suitable for architecture cloning; inserting a runtime routine call at an entry point of the program; invoking architecture cloning when one or more candidate procedures are identified during procedure cloning; providing a user with an interface for specifying multiple architecture targets to the compiler; and enabling the compiler to generate architectural specific instructions optimized for each of the multiple architecture targets.Type: GrantFiled: July 31, 2006Date of Patent: February 14, 2012Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Edwin Chan, Raul E. Silvera
-
Patent number: 8091079Abstract: A method for implementing shadow versioning to improve data dependence analysis for instruction scheduling in compiling code, and to identify loops within the code to be compiled, for each loop initializing a dependence a matrix, for each loop shadow identifying symbols that are accessed by the loop, examining dependencies, storing, comparing and classifying the dependence vectors, generating new shadow symbols, replacing the old shadow symbols with the new shadow symbols, generating alias relationships between the newly created shadow symbols, scheduling instructions and compiling the code.Type: GrantFiled: August 29, 2007Date of Patent: January 3, 2012Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Patent number: 8037462Abstract: A method for providing parallel processing capabilities including: performing scalar and array privatization analysis via a compiler; checking whether an assignment statement is reducible; recognizing reduction patterns through a pattern matching algorithm; classifying a reduction type of each of the reduction patterns; and performing transformations and code generation for each reduction the reduction type of each of the reduction patterns.Type: GrantFiled: August 2, 2006Date of Patent: October 11, 2011Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Yaoqing Gao, Zhixing Ren, Raul E. Silvera
-
Publication number: 20110093838Abstract: An illustrative embodiment provides a computer-implemented process for managing speculative assist threads for data pre-fetching that analyzes collected source code and cache profiling information to identify a code region containing a delinquent load instruction and generates an assist thread, including a value for a local version number, at a program entry point within the identified code region. Upon activation of the assist thread the local version number of the assist thread is compared to the global unique version number of the main thread for the identified code region and an iteration distance between the assist thread relative to the main thread is compared to a predefined value. The assist thread is executed when the local version number of the assist thread matches the global unique version number of the main thread, and the iteration distance between the assist thread relative to the main thread is within a predefined range of values.Type: ApplicationFiled: October 15, 2010Publication date: April 21, 2011Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: ROCH G. ARCHAMBAULT, TONG CHEN, YAOQING GAO, KHALED A. MOHAMMED, JOHN K. O'BRIEN, GENNADY PEKHIMENKO, RAUL E. SILVERA, ZEHRA N. SURA
-
Publication number: 20110072419Abstract: May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data.Type: ApplicationFiled: September 22, 2010Publication date: March 24, 2011Applicant: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Yaoqing Gao
-
Patent number: 7877739Abstract: A computer-implemented method for determining whether an array within a loop can be privatized for that loop is presented. The method calculates the array sections that require first or last privatization and copies only those sections, reducing the privatization overhead of the known solutions.Type: GrantFiled: October 9, 2006Date of Patent: January 25, 2011Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Erik P. Charlebois, Guansong Zhang
-
Publication number: 20110016460Abstract: A method includes configuring one or more processors to perform operations. The operations include instrumenting at least one code region of an application with at least one annotation for generating profile data when the at least one code region is executed. The operations include executing the application to generate profile data for the at least one code region. The operations also include identifying, from the profile data, a delinquent code region from the generated profile data. The operations include instrumenting the delinquent code region with annotations for generating profile data when the code regions are executed. The operations include executing the application to generate additional profile data for the at least one code region, including the delinquent code region.Type: ApplicationFiled: July 6, 2010Publication date: January 20, 2011Applicant: International Business Machines CorporationInventors: Roch G. Archambault, Yaoqing Gao, Allan R. Martin, Mark P. Mendell, Raul E. Silvera, Graham Yin
-
Patent number: 7856627Abstract: A method for handling Simple Instruction Multiple Data (SIMD) architecture restrictions through data reshaping, padding, and alignment, including: building a global call graph; creating array descriptors for maintaining array attributes; gathering array affinity information; performing global pointer analysis and escape analysis; performing loop-based analysis to identify a SIMD opportunity; building an array affinity graph; performing graph partitioning on the array affinity graph to construct an array reshaping plan; performing data reshaping on the array affinity graph; and performing SIMDization on the array affinity graph wherein SIMDization comprises automatic generation of SIMD code.Type: GrantFiled: August 8, 2006Date of Patent: December 21, 2010Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Yaoqing Gao, Raul E. Silvera
-
Patent number: 7765534Abstract: A compiling program with cache utilization optimizations employs an inter-procedural global analysis of the data access patterns of compile units to be processed. The global analysis determines sufficient information to allow intelligent application of optimization techniques to be employed to enhance the operation and utilization of the available cache systems on target hardware.Type: GrantFiled: April 30, 2004Date of Patent: July 27, 2010Assignee: International Business Machines CorporationInventors: Roch G. Archambault, Robert J. Blainey, Yaoqing Gao
-
Publication number: 20090064119Abstract: Systems, methods and computer products for compiler support for aggressive safe load speculation. Exemplary embodiments include a method for aggressive safe load speculation for a compiler in a computer system, the method including building a control flow graph, identifying both countable and non-countable loops, gathering a set of candidate loops for load speculation, for each candidate loop in the set of candidate loops gathered for load speculation performing computing an estimate of the iteration count, delay cycles, and code size, performing a profitability analysis and determine an unroll factor based on the delay cycles and the code size, transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively and performing low-level instruction on the generated unrolled main loop.Type: ApplicationFiled: August 27, 2007Publication date: March 5, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Roch G. Archambault, Geoffrey O. Blandy, Roland Froese, Yaoqing Gao, Liangxiao Hu, James L. McInnes, Raul E. Silvera
-
Publication number: 20090064121Abstract: Systems, methods and computer products for implementing shadow versioning to improve data dependence analysis for instruction scheduling. Exemplary embodiments include a method to identify loops within the code to be compiled, for each loop a dependence initializing a matrix, for each loop shadow identifying symbols that are accessed by the loop, examining dependencies, storing, comparing and classifying the dependence vectors, generating new shadow symbols, replacing the old shadow symbols with the new shadow symbols, generating alias relationships between the newly created shadow symbols, scheduling instructions and compiling the code.Type: ApplicationFiled: August 29, 2007Publication date: March 5, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Roch G. Archambault, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Publication number: 20090019425Abstract: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.Type: ApplicationFiled: July 10, 2007Publication date: January 15, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Roch G. Archambault, Shimin Cui, Stephen Curial, Yaoqing Gao, Raul E. Silvera, Peng Zhao
-
Publication number: 20080086271Abstract: A computer-implemented method for determining whether an array within a loop can be privatized for that loop is presented. The method calculates the array sections that require first or last privatization and copies only those sections, reducing the privatization overhead of the known solutions.Type: ApplicationFiled: October 9, 2006Publication date: April 10, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Roch G. Archambault, Erik P. Charlebois, Guansong Zhang