// loopRotate converts loops with a check-loop-condition-at-beginning // to loops with a check-loop-condition-at-end. // This helps loops avoid extra unnecessary jumps. // // loop: // CMPQ ... // JGE exit // ... // JMP loop // exit: // // JMP entry // loop: // ... // entry: // CMPQ ... // JLT loop func loopRotate(f *Func) { … }