Patent ID: 8572359
Filing Date: 2013-10-29
Classification: G06F

Abstract:
1. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to: execute a portion of code having a loop; generate, for the loop, a plurality of parallel execution groups, each parallel execution group comprising a subset of iterations of the loop less than a total number of iterations of the loop; execute a set of iterations of the loop in a subset of iterations of the loop associated with a first parallel execution group using corresponding separate vector slots of a vector register, wherein each iteration in the set of iterations is associated with a separate vector slot of the vector register and each iteration in the set of iterations has a corresponding data parallelism identifier (DPID), and wherein each iteration of the set of iterations associated with a separate vector slot is executed in parallel with the other iterations in the set of iterations associated with the separate vector slots; determine, for each iteration in the set of iterations, whether the execution of the iteration has a data dependence upon the execution of any of the other iterations of the set of iterations of the first parallel execution group based on the DPIDs of the iterations in the set of iterations; and commit store data to system memory only for stores performed by iterations in the set of iterations of subset of iterations of the first parallel execution group for which no data dependence upon another iteration in the set of iterations is determined, wherein store data of stores performed by iterations in the set of iterations of the subset of iterations of the first parallel execution group, for which a data dependence upon at least one other iteration in the set of iterations is determined, is not committed to the system memory.