Patent ID: 7725643

Claim:
A method in a data processing system for avoiding an address dependency between tasks coded in source code for a program to be executed in the data processing system, comprising the steps of: determining whether two or more tasks of the same program have been coded in source code to depend on at least one same memory address, the at least one same memory address being associated with a first memory block; when it is determined that the two or more tasks of the program have been coded in source code to depend on the at least one same memory address, allocating a second memory block; and changing a read reference by at least one of the two or more tasks from the first memory block associated with the at least one same memory address to the second memory bloc; and determining whether it is useful to process the two or more tasks in parallel by: identifying a cost associated with processing the two or more tasks in series; identifying a savings associated with processing the two or more tasks in parallel; determining whether the savings is greater than the cost; and identifying that it is useful to process the two or more tasks in parallel in response to determining that the savings is greater than the cost; wherein the steps of allocating and changing further comprise, when it is determined that it is useful to process the two or more tasks in parallel, allocating the second memory; and changing a read reference by at least one of the two or more tasks from the first memory block to the second memory block.