Maybe it's not a proper place to put this message. I just noticed a mistake when I read the paper of gcc summit 2003 named "The finite state automaton based pipeline hazard recognizer and instruction scheduler in GCC". The first cycle multi-pass instruction scheduling algorithm:
... if n > 0 || ReadyTry[0] ... here should be if n > 0 && ReadyTry[0] since 'the algorithm guarantees that the instruction with the highest priority will be issued on the current cycle).' Of course, implemented code in gcc is right :-) Eric Fisher 2008-9-9