EFFICIENTLY RELEASING LOCKS WHEN AN EXCEPTION OCCURS

    公开(公告)号:CA2430383A1

    公开(公告)日:2004-11-30

    申请号:CA2430383

    申请日:2003-05-30

    Applicant: IBM CANADA

    Abstract: Repetitive synchronization in program code is optimized through lock coarsening that is performed subject to a number of constraints. Using a forward pass over the program code followed by a backward pass, region extent bits may be determin ed that identify the points in the program where object locking can be coarsened. Th e program code may then be modified to realize coarsened locking regions determined based on the region extent bits. Alternatively, previously determined value numbers may provide much of the information collected by the two passes. In such a case, a single pas s over the program code may locate features that limit lock coarsening opportunities. A set of synchronization operations that can be removed may then be determined and us ed when modifying the program code to coarsen locking regions.

    TRANSFORMING LOCKS IN SOFTWARE LOOPS

    公开(公告)号:CA2442800A1

    公开(公告)日:2005-03-26

    申请号:CA2442800

    申请日:2003-09-26

    Applicant: IBM CANADA

    Abstract: An improved method and system for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.

    METHOD FOR COMPUTER PROGRAM OPTIMIZATION IN A DYNAMIC COMPILING ENVIRONMENT

    公开(公告)号:CA2443049A1

    公开(公告)日:2005-03-26

    申请号:CA2443049

    申请日:2003-09-26

    Applicant: IBM CANADA

    Abstract: Dynamically compiled computer program code containing virtual calls can redu ce the options for optimization during compilation. A virtual call can affect sections of the program code that are compiled subsequent to the virtual call. Therefore, th e state under which the effected sections are to be executed may not be known at the time of compilation thus complicating optimization of these sections. If assumptions are made about the state of an effected section, then this section can be optimized. In order to provide proper operation of the executing program code given the optimizatio n, a check of the validity of the assumptions is performed prior to execution of the optimized section. If an assumption does not hold true then the original un-optimized section can be executed to reduce adverse program performance.

    PARTIAL INLINING WITH SOFTWARE BASED RESTART

    公开(公告)号:CA2719653A1

    公开(公告)日:2011-01-18

    申请号:CA2719653

    申请日:2010-11-05

    Applicant: IBM CANADA

    Abstract: A compiler and method of optimizing code by partial inlining of a subset of blocks of called blocks of code into calling blocks of code. A restart of the called blocks of code is provided for the case where non-inlined blocks of code are reached at run time. Blocks selected for partial inlining may include global side effects depending on the computer program environment. Global side effects in the selected blocks of code leading to a restart are sanitized in order to defer changes to the global state of the computer program.

    OBJECT COLLOCATION
    5.
    发明专利

    公开(公告)号:CA2675686A1

    公开(公告)日:2009-11-05

    申请号:CA2675686

    申请日:2009-08-27

    Applicant: IBM CANADA

    Abstract: A computer-implemented method, system, and computer program product for performing object collocation on a computer system are provided. The method includes analyzing a sequence of computer instructions for object allocations and uses of the allocated objects. The method further includes creating an allocation interference graph of object allocation nodes with edges indicating pairs of allocations to be omitted from collocation. The method also includes colouring the allocation interference graph such that adjacent nodes are assigned different colours, and creating an object allocation at a program point prior to allocations of a selected colour from the allocation interference graph. The method additionally includes storing an address associated with the created object allocation in a collocation pointer, and replacing a use of each allocation of the selected colour with a use of the collocation pointer to collocate multiple objects.

    OBJECT COLLOCATION
    6.
    发明专利

    公开(公告)号:CA2675686C

    公开(公告)日:2011-10-11

    申请号:CA2675686

    申请日:2009-08-27

    Applicant: IBM CANADA

    Abstract: A computer-implemented method, system, and computer program product for performing object collocation on a computer system are provided. The method includes analyzing a sequence of computer instructions for object allocations and uses of the allocated objects. The method further includes creating an allocation interference graph of object allocation nodes with edges indicating pairs of allocations to be omitted from collocation. The method also includes colouring the allocation interference graph such that adjacent nodes are assigned different colours, and creating an object allocation at a program point prior to allocations of a selected colour from the allocation interference graph. The method additionally includes storing an address associated with the created object allocation in a collocation pointer, and replacing a use of each allocation of the selected colour with a use of the collocation pointer to collocate multiple objects.

    ELEMINATING REDUNDANT OPERATIONS FOR COMMON PROPERTIES USING SHARED REAL REGISTERS

    公开(公告)号:CA2684226A1

    公开(公告)日:2011-04-30

    申请号:CA2684226

    申请日:2009-10-30

    Applicant: IBM CANADA

    Abstract: A method for eliminating redundant operations establishing common properties is disclosed herein. In one embodiment, such a method may include identifying a first virtual register storing a first value having a common property. The method may assign the first virtual register to use a real register. The method may further identify a second virtual register storing a second value also having the common property. The method may assign the second virtual register to use the real register after the first value is no longer live. As a result of assigning the second virtual register to the first real register, the method may eliminate an operation configured to establish the common property for the second value since this operation is redundant and is no longer needed. A corresponding apparatus and computer program product are also disclosed and claimed herein.

Patent Agency Ranking