Software Pipelining Techniques Research Articles