Patents by Inventor Gad Haber

Gad Haber 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: 8812410
    Abstract: Systems and methods for data profiling are provided. In one embodiment, the method comprises monitoring value of at least a target parameter during execution of logic code in a computing environment, wherein the value of the target parameter is incrementally updated in a sequence of data points; and using statistical analysis to determine a target value for the target parameter as of a current data point, in response to determining a change in the value of the target parameter at each data point.
    Type: Grant
    Filed: August 25, 2011
    Date of Patent: August 19, 2014
    Assignee: International Business Machines Corporation
    Inventors: Gad Haber, Marcel Zalmanovici
  • Patent number: 8656381
    Abstract: A machine-independent representation of computer instructions can serve as a standard for machine instruction description that is suitable for post-link transformation tools, such as post-link optimizers, and for education of users. In one embodiment the instructions are presented as expression trees in a XML file. An optimizer operates on the transformed code representations, after which optimized code is re-transformed into machine-readable code.
    Type: Grant
    Filed: December 7, 2006
    Date of Patent: February 18, 2014
    Assignee: International Business Machines Corporation
    Inventors: Maxim Gurevich, Gad Haber, Roy Levin
  • Publication number: 20130054494
    Abstract: Systems and methods for data profiling are provided. In one embodiment, the method comprises monitoring value of at least a target parameter during execution of logic code in a computing environment, wherein the value of the target parameter is incrementally updated in a sequence of data points; and using statistical analysis to determine a target value for the target parameter as of a current data point, in response to determining a change in the value of the target parameter at each data point.
    Type: Application
    Filed: August 25, 2011
    Publication date: February 28, 2013
    Applicant: International Business Machines Corporation
    Inventors: Gad Haber, Marcel Zalmanovici
  • Patent number: 8370821
    Abstract: Methods and systems for computer program optimization utilize function cloning in program code, such as post-linked code. Each function call is directed to a different cloned version of the called function. Conventional profiling methods such as hardware event sampling, basic block profiling, and edge profiling may then be applied to the modified program code to obtain call path-based, clone-specific profile data. The profile data can be further exploited to optimize the program code.
    Type: Grant
    Filed: August 21, 2007
    Date of Patent: February 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: Gad Haber, Roy Levin, Shmuel Ur
  • Patent number: 8370823
    Abstract: Device, system, and method of computer program optimization. For example, an apparatus to analyze a plurality of versions of computer program includes: a code analyzer to determine one or more code differences between first and second versions of the computer program, based on at least one optimization log associated with at least one of the first and second versions of the computer program.
    Type: Grant
    Filed: August 27, 2007
    Date of Patent: February 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: Guy Bashkansky, Gad Haber, Marcel Zalmanovici
  • Publication number: 20130031537
    Abstract: Systems, methods and products for code optimization are provided. In one embodiment, the method comprises dividing a target code into basic blocks; analyzing traversed execution paths between the basic blocks during multiple executions of the target code to determine a frequency with which the execution path between two or more basic blocks are traversed; and determining whether code optimization may be achieved by identifying execution paths that have been traversed subject to one or more threshold levels.
    Type: Application
    Filed: July 28, 2011
    Publication date: January 31, 2013
    Applicant: International Business Machines Corporation
    Inventors: Omer Yehuda Boehm, Gad Haber, Yousef Shajrawi
  • Publication number: 20120232880
    Abstract: An apparatus and a computer-implemented method performed by a computerized device comprising: receiving a model describing an aspect of a computer program; and determining comparative performance assessment of a property of the model by operating the model.
    Type: Application
    Filed: March 13, 2011
    Publication date: September 13, 2012
    Applicant: International Business Machines Corporation
    Inventor: Gad Haber
  • Publication number: 20110078424
    Abstract: A method for optimizing program code is provided. The method comprises detecting a branch instruction comprising a condition expression, wherein the branch instruction, when executed by a processor, causes the processor to execute either a first set of instructions or a second set of instructions according to a value of the condition expression; and replacing the branch instruction with a third set of instructions that are non-branching, wherein the third set of instructions, when executed by a processor, has a collective effect same as if either the first or second set of instructions were executed according to the value of the condition expression. The third set of instructions comprises a negation instruction to normalize the value of the condition expression.
    Type: Application
    Filed: September 30, 2009
    Publication date: March 31, 2011
    Applicant: International Business Machines Corporation
    Inventors: Omer Yehuda Boehm, Gad Haber, Yousef Shajrawi
  • Publication number: 20100299661
    Abstract: A method for optimizing program code is provided. The method comprises receiving a request to execute a computer program on a computer system; loading executable code generated for the computer program into memory; optimizing the executable code during the loading; and executing the optimized executable code. The executable code is optimized according to information collected about the computer system, and the optimized executable code and the collected information are stored for use during future optimization of the executable code.
    Type: Application
    Filed: May 25, 2009
    Publication date: November 25, 2010
    Applicant: International Business Machines Corporation
    Inventors: Daniel Citron, Gad Haber
  • Patent number: 7784040
    Abstract: A method and system for profiling performance behaviour of executed loops. For each invocation of a loop, a count of a measured event is incremented. A display is provided for a loop (209) showing the number of measured events for each of the loop's invocations. The code of a loop is instrumented (204) to obtain the count of loop invocations (207) and the occurrences of the measured event (208).
    Type: Grant
    Filed: November 15, 2005
    Date of Patent: August 24, 2010
    Assignee: International Business Machines Corporation
    Inventors: Gad Haber, Marcel Zalmanovici
  • Publication number: 20090193402
    Abstract: Optimizing a computer program by setting a first compiler optimization configuration for a first entity of a computer program, setting a second compiler optimization configuration for a second entity of the computer program, where the first and second entities are of the same type and where the first and second compiler optimization configurations differ, and compiling the computer program in accordance with the compiler optimization configurations, thereby creating a compiled program.
    Type: Application
    Filed: January 28, 2008
    Publication date: July 30, 2009
    Inventors: Guy Bashkansky, Gad Haber, Yaakov Yaari, Marcel Zalmanovici
  • Publication number: 20090064117
    Abstract: Device, system, and method of computer program optimization. For example, an apparatus to analyze a plurality of versions of computer program includes: a code analyzer to determine one or more code differences between first and second versions of the computer program, based on at least one optimization log associated with at least one of the first and second versions of the computer program.
    Type: Application
    Filed: August 27, 2007
    Publication date: March 5, 2009
    Inventors: Guy Bashkansky, Gad Haber, Marcel Zalmanovici
  • Publication number: 20090055813
    Abstract: Methods and systems for computer program optimization utilize function cloning in program code, such as post-linked code. Each function call is directed to a different cloned version of the called function. Conventional profiling methods such as hardware event sampling, basic block profiling, and edge profiling may then be applied to the modified program code to obtain call path-based, clone-specific profile data. The profile data can be further exploited to optimize the program code.
    Type: Application
    Filed: August 21, 2007
    Publication date: February 26, 2009
    Inventors: Gad Haber, Roy Levin, Shmuel Ur
  • Publication number: 20080141233
    Abstract: A machine-independent representation of computer instructions can serve as a standard for machine instruction description that is suitable for post-link transformation tools, such as post-link optimizers, and for education of users. In one embodiment the instructions are presented as expression trees in a XML file. An optimizer operates on the transformed code representations, after which optimized code is re-transformed into machine-readable code.
    Type: Application
    Filed: December 7, 2006
    Publication date: June 12, 2008
    Applicant: International Business Machines Corporation
    Inventors: Maxim Gurevich, Gad Haber, Roy Levin
  • Publication number: 20080046875
    Abstract: A method for identifying a program code is provided. The method comprises identifying a plurality of basic blocks in a first program code, wherein the basic blocks are arranged in a first sequential order; rearranging the basic blocks in a second sequential order to generate a second program code; and using the second sequential order to generate a unique identification key associated with the first program code.
    Type: Application
    Filed: August 16, 2006
    Publication date: February 21, 2008
    Inventors: Gad Haber, Andre Heilper, Marcel Zalmanovici
  • Publication number: 20080040334
    Abstract: Methods and systems are provided to facilitate the optimization process of existing relational database managers when processing complex queries. Specialized constraining clauses are inserted in or added to SQL queries, which do not affect the semantics of the queries. This operation causes the RDBMS to partition the query into sub-queries, and to apply a more efficient optimization for each sub-query. A condition in which the execution time of the modified query substantially exceeds that of the original query may indicate a design flaw in the RDBMS query optimizer.
    Type: Application
    Filed: August 9, 2006
    Publication date: February 14, 2008
    Inventors: Gad Haber, Andre Heilper, Ariel Landau, Nattavut Sutyanyong, Gary Valentin, Calisto Zuzarte
  • Patent number: 7310799
    Abstract: A method for improving program performance including reordering a global data area of a program and for each load instruction referencing global variables within range of the immediate part of an add immediate instruction from a TOC anchor, replacing the load instruction with an add immediate instruction. The method may further include placing a TOC at the top, or within a predetermined distance from the top, of the global data area. The method may also include placing the global variables after the TOC, wherein more frequently referenced global variable are closer to the TOC than less frequently referenced global variables. Also, the method may further include placing in run-time order, groups of the global variables that frequently follow each other in run-time.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: December 18, 2007
    Assignee: International Business Machines Corporation
    Inventors: Vadim Eisenberg, Maxim Gurevich, Gad Haber, Moshe Klausner
  • Publication number: 20070168999
    Abstract: A method and system for profiling performance behaviour of executed loops. For each invocation of a loop, a count of a measured event is incremented. A display is provided for a loop (209) showing the number of measured events for each of the loop's invocations. The code of a loop is instrumented (204) to obtain the count of loop invocations (207) and the occurrences of the measured event (208).
    Type: Application
    Filed: November 15, 2005
    Publication date: July 19, 2007
    Applicant: International Business Machines Corporation
    Inventors: Gad Haber, Marcel Zalmanovici
  • Publication number: 20070088788
    Abstract: A computer-implemented method and system for enhancing electronic mail (e-mail) correspondence is provided. The method includes, prior to sending an e-mail message, determining a status of a recipient of the e-mail message, and presenting the status to a user. The system includes an enhancement module to determine a status of a recipient of an e-mail message before the message is sent; and a database to store information about a previous recipients that received e-mail messages from a sender.
    Type: Application
    Filed: October 14, 2005
    Publication date: April 19, 2007
    Applicant: International Business Machines Corporation
    Inventors: Itzhack Goldberg, Gad Haber
  • Patent number: 7036116
    Abstract: A method for post-link code optimization by identifying cold caller functions of a hot callee function, and percolating store and restore instructions with respect to non-volatile registers from the callee function to the caller function.
    Type: Grant
    Filed: March 14, 2002
    Date of Patent: April 25, 2006
    Assignee: International Business Machines Corporation
    Inventors: Gad Haber, Moshe Klausner, Vadim Eisenberg