https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125305
--- Comment #3 from chenglulu <chenglulu at loongson dot cn> --- The description of the hook TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD is as follows: ``` ... This code also could be used for superscalar RISC processors. Let us consider a superscalar RISC processor with 3 pipelines. Some insns can be executed in pipelines A or B, some insns can be executed only in pipelines B or C, and one insn can be executed in pipeline B. The processor may issue the 1st insn into A and the 2nd one into B. In this case, the 3rd insn will wait for freeing B until the next cycle. If the scheduler issues the 3rd insn the first, the processor could issue all 3 insns per cycle. Actually this code demonstrates advantages of the automaton based pipeline hazard recognizer. We try quickly and easy many insn schedules to choose the best one. The default is no multipass scheduling. ``` However, LoongArch64 processors are all out-of-order execution processors. Since the hardware will reschedule instructions dynamically anyway, performing aggressive static multipass scheduling at compile time yields diminishing returns for OoO cores and leads to an exponential explosion in compilation time. I believe that LoongArch64 does not need to define the hook TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD.
