-
公开(公告)号:CA2430383A1
公开(公告)日:2004-11-30
申请号:CA2430383
申请日:2003-05-30
Applicant: IBM CANADA
Inventor: STOODLEY MARK G , SUNDARESAN VIJAY
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.
-
公开(公告)号:CA2442800A1
公开(公告)日:2005-03-26
申请号:CA2442800
申请日:2003-09-26
Applicant: IBM CANADA
Inventor: STOODLEY MARK G , GRCEVSKI NIKOLA , STOODLEY KEVIN A , SUNDARESAN VIJAY
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.
-
公开(公告)号:CA2443049A1
公开(公告)日:2005-03-26
申请号:CA2443049
申请日:2003-09-26
Applicant: IBM CANADA
Inventor: SHEIKH ALI I , SUNDARESAN VIJAY
IPC: G06F9/45
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.
-
公开(公告)号:CA2719653A1
公开(公告)日:2011-01-18
申请号:CA2719653
申请日:2010-11-05
Applicant: IBM CANADA
Inventor: GARTLEY JAMES I A , DOYLE PATRICK R , INGLIS DEREK B , SUNDARESAN VIJAY
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.
-
公开(公告)号:CA2675686A1
公开(公告)日:2009-11-05
申请号:CA2675686
申请日:2009-08-27
Applicant: IBM CANADA
Inventor: RAMARAO PRAMOD , SUNDARESAN VIJAY , DOYLE PATRICK R
IPC: G06F9/45
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.
-
公开(公告)号:CA2675686C
公开(公告)日:2011-10-11
申请号:CA2675686
申请日:2009-08-27
Applicant: IBM CANADA
Inventor: DOYLE PATRICK R , RAMARAO PRAMOD , SUNDARESAN VIJAY
IPC: G06F9/45
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.
-
公开(公告)号:CA2684226A1
公开(公告)日:2011-04-30
申请号:CA2684226
申请日:2009-10-30
Applicant: IBM CANADA
Inventor: MITRAN MARCEL , PATIL KISHOR V , SIU JORAN S C , STOODLEY MARK G , SUNDARESAN VIJAY
IPC: G06F9/45
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.
-
-
-
-
-
-