1. A method, comprising: identifying a loop in a program; identifying each vector memory reference in the loop determining dependencies between vector memory references in the loop, including determining unidirectional and circular dependencies; and distributing the vector memory references into a plurality of detail loops, wherein the vector memory references that have circular dependencies therebetween are included in a common detail loop, and wherein the detail loops are ordered according to the unidirectional dependencies between the memory references.