Patents by Inventor Bilha Mendelson
Bilha Mendelson 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: 8214817Abstract: A computer implemented method, apparatus, and computer program product for generating an optimization insensitive behavior profile. In one embodiment, a source identifier is assigned to each instruction in an original control flow graph representing a program code prior to optimization. The identifiers identify a basic block associated with the instruction or a group of basic blocks. A source identifier in the set of source identifiers is assigned to instructions in an optimized control flow graph representing the program code after optimizing the program code. The instructions in the optimized control flow graph are mapped to the original control flow graph using the set of source identifiers to form a mapping transformation. Behavior profile data associated with the optimized program code is moved to basic blocks in the original control flow graph using the mapping transformation to form the optimization insensitive behavior profile.Type: GrantFiled: October 9, 2007Date of Patent: July 3, 2012Assignee: International Business Machines CorporationInventors: Bilha Mendelson, Nitzan Peleg
-
Publication number: 20090094590Abstract: A computer implemented method, apparatus, and computer program product for generating an optimization insensitive behavior profile. In one embodiment, a source identifier is assigned to each instruction in an original control flow graph representing a program code prior to optimization. The identifiers identify a basic block associated with the instruction or a group of basic blocks. A source identifier in the set of source identifiers is assigned to instructions in an optimized control flow graph representing the program code after optimizing the program code. The instructions in the optimized control flow graph are mapped to the original control flow graph using the set of source identifiers to form a mapping transformation. Behavior profile data associated with the optimized program code is moved to basic blocks in the original control flow graph using the mapping transformation to form the optimization insensitive behavior profile.Type: ApplicationFiled: October 9, 2007Publication date: April 9, 2009Inventors: Bilha Mendelson, Nitzan Peleg
-
Publication number: 20060277456Abstract: A taxonomy for annotations found in program code. The taxonomy includes a set of meta-annotations associated with an annotation definition and a set of values for each meta-annotation. The meta-annotations describes properties of each annotation. The values describe one quality of its associated meta-annotation. The taxonomy is used in a method for instrumenting a piece of code. The method includes reviewing meta-annotations attached to each annotation definition within the piece of code to determine how to proceed with instrumenting the piece of code.Type: ApplicationFiled: June 7, 2005Publication date: December 7, 2006Applicant: International Business Machines CorporationInventors: Marina Biberstein, Daniel Citron, Alberto Giammaria, Bilha Mendelson, Vugranam Sreedhar
-
Patent number: 6925638Abstract: A system and method for detecting the mutability of fields and classes in an arbitrary program component written in an object oriented programming language is disclosed. A variable is considered to be mutable if a new value is stored into it, as well as if any of its reachable variables are mutable. The system and method uses a static analysis algorithm which can be applied to any software component rather than whole programs. The analysis classifies fields and classes as either mutable or immutable. In order to facilitate open-world analysis, the algorithm identifies situations that expose variables to potential modification by code outside the component, as well as situations where variables are modified by the analyzed code. An implementation of the analysis is presented which focuses on detecting mutability of class variables, so as to avoid isolation problems. The implementation incorporates intra- and inter-procedural data-flow analyses and is shown to be highly scalable.Type: GrantFiled: September 21, 2000Date of Patent: August 2, 2005Assignee: International Business Machines CorporationInventors: Larry Koved, Bilha Mendelson, Sara Porat, Marina Biberstein
-
Patent number: 6742179Abstract: A program product and method of compiling a computer program to optimize performance of a computer program. First, after initialization, a profiling run is done on computer code which may include program code blocks and program data. Execution of each computer program step is monitored and each occurrence of each individual code unit is logged, e.g. each instruction block or block of data. Frequently occurring code units are identified periodically as hot blocks. An initial snapshot of hot blocks is logged, e.g., when identified hot blocks exceed an initial block number. Profiling continues until the profiling run is complete, updating identified hot blocks and logging a new current snapshot whenever a current set of identified hot blocks contains a selected percentage of different hot blocks. Snapshots are selected as representative to different program modes. The program is optimized according to program modes.Type: GrantFiled: July 12, 2001Date of Patent: May 25, 2004Assignee: International Business Machines CorporationInventors: Nimrod Megiddo, Bilha Mendelson
-
Patent number: 6631518Abstract: Disclosed is a system and method for a profiling system wherein profile data is stored in a separable hierarchical fashion such that profile data for each compiled procedure in a computer program can be readily identified and utilized. In particular, each source module has a corresponding profile data file and each procedure has a corresponding procedure profile area. The system and method also includes a mechanism for verifying the existence and validity of profile information, and a mechanism for handling invalid profile information.Type: GrantFiled: March 19, 1997Date of Patent: October 7, 2003Assignee: International Business Machines CorporationInventors: Vita Bortnikov, David John Lambert, Bilha Mendelson, Robert Ralph Roediger, William Jon Schmidt, Inbal Shavit-Lottem
-
Publication number: 20030014741Abstract: A program product and method of compiling a computer program to optimize performance of a computer program. First, after initialization, a profiling run is done on computer code which may include program code blocks and program data. Execution of each computer program step is monitored and each occurrence of each individual code unit is logged, e.g. each instruction block or block of data. Frequently occurring code units are identified periodically as hot blocks. An initial snapshot of hot blocks is logged, e.g., when identified hot blocks exceed an initial block number. Profiling continues until the profiling run is complete, updating identified hot blocks and logging a new current snapshot whenever a current set of identified hot blocks contains a selected percentage of different hot blocks. Snapshots are selected as representative to different program modes. The program is optimized according to program modes.Type: ApplicationFiled: July 12, 2001Publication date: January 16, 2003Applicant: International Business Machines CorporationInventors: Nimrod Megiddo, Bilha Mendelson
-
Patent number: 6314561Abstract: The data cache management mechanism of the present invention is created by an optimizing compiler. The optimizing compiler intelligently places non-blocking preload instructions into the instruction stream of the computer system so as to minimize both the frequency and detrimental effect of cache misses. The non-blocking preload instructions are placed into the instruction stream based on the existence of predictor constructs that foretell what information the processor will need and when it will need it. As a result, cache misses are either avoided entirely or reduced in severity.Type: GrantFiled: April 12, 1995Date of Patent: November 6, 2001Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Steven Raymond Kunkel, Mikko Herman Lipasti, Bilha Mendelson, Robert Ralph Roedinger, William Jon Schmidt
-
Patent number: 6145125Abstract: A method for effecting a direct jump in an executable program module to a target address displaced from a source address by a specified distance that is greater than a maximum permitted range. During program linkage the direct jump is split into at least two component direct jumps each no greater than the maximum permitted range, thus allowing the direct jump to be achieved by jumping sequentially from the source address to the target address via each of the component direct jumps. A storage medium for storing data representative of the executable program module contains at least one trampoline for performing the component direct jumps.Type: GrantFiled: November 12, 1998Date of Patent: November 7, 2000Assignee: International Business Machines CorporationInventors: Jan Civlin, Gadi Haber, Bilha Mendelson, David Bernstein, Itai Nahshon
-
Patent number: 6029004Abstract: An apparatus and method reorder portions of a computer program in a way that achieves both enhanced performance and maintainability of the computer program. A global call graph is initially constructed that includes profile data. From the information in the global call graph, an intramodular call graph is generated for each module. Reordering techniques are used to reorder the procedures in each module according to the profile data in each intramodular call graph. An intermodular call graph is generated from the information in the global call graph. Reordering techniques are used to reorder the modules in the computer program. By reordering procedures within modules, then reordering the modules, enhanced performance is achieved without reordering procedures across module boundaries.Type: GrantFiled: March 17, 1997Date of Patent: February 22, 2000Assignee: International Business Machines CorporationInventors: Vita Bortnikov, Bilha Mendelson, Mark Novick, Robert Ralph Roediger, William Jon Schmidt, Inbal Shavit-Lottem
-
Patent number: 5950009Abstract: An apparatus and several methods provide for a more optimized computer program that will have a faster execution time than was possible using the prior art reordering technique that adds to a trace until it finds no more predecessors or successors to add. The apparatus and methods disclosed herein use a variety of methods to reorder the program portions in a more intelligent manner that will improve its run-time performance. Each of these methods involves constructing traces in the control flow graph of the computer program. In a first embodiment, a basic block is only added to a trace if it is not negligible within predetermined limits. This negligibility test results in traces that are not extended for infrequently executed basic blocks. In a second embodiment, a basic block is only added to a trace if it is a perfect partner with the last basic block added to the trace. The concept of a "perfect partner" helps to match basic blocks together in a trace that have the greatest affinity for each other.Type: GrantFiled: March 10, 1997Date of Patent: September 7, 1999Assignee: International Business Machines CoporationInventors: Vita Bortnikov, Bilha Mendelson, Mark Novick, William Jon Schmidt, Inbal Shavit-Lottem