Skip to Main Content
Software pipelining is an effective approach to loop scheduling. A common problem is that, if some paths are severely constrained by dependence cycles while others are not, how to find an optimal schedule without splitting paths. By removing control dependencies, speculation provides a general but limited answer. This paper provides another answer: removing data dependencies. Although a data dependency is a must-follow relationship, that does not mean it always has instances. By data dependence relaxation, a (near) optimal schedule with self-adaptable initiation interval is achieved.