1. A method of generating a speculative helper thread, the method comprising: identifying a code region in main thread software instructions; selecting a spawn-target pair, the spawn-target pair including a target point preceding the code region and a spawn point preceding the target point, the spawn-target pair selection being based on a spawn-target selection calculation; generating helper thread software instructions to launch a helper thread at the spawn point to prefetch a subset of the main thread software instructions; and attaching the helper thread software instructions to the main thread software instructions.