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.

Reply via email to