Patent ID: 8583905
Filing Date: 2013-11-12
Classification: G06F

Abstract:
1. A method, in a data processing system, for extracting data dependencies during runtime, comprising: executing, by a processor of the data processing system, a portion of code having a loop; generating, by the processor, 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; executing, by the processor, 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; determining by the processor, 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 committing 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.