1. A computer storage medium having computer-executable instructions for causing a computer to perform steps comprising: provide a transactional memory system; transform a first section of code containing an open ended sequential loop into a second section of code containing a parallel loop, the parallel loop being operable to generate a separate transaction containing a respective work item for each iteration of a speculation pipeline, the open ended sequential loop is a sequential loop whose number of iterations is unknown; and execute the second section of code using the transactional memory system, with at least some of the separate transactions being executed on different threads.