1. A method comprising spilling and filling computed values, in a register to hold addresses of spilled and filled memory locations, that are live across multiple stages in a software-pipelined loop, using rotating stack memory locations.