A non-deterministic scheduler for a software pipelining compiler