New assert in haifa-sched.c
Maxim Kuvyrkov
maxim@codesourcery.com
Fri Sep 5 16:19:00 GMT 2008
Adam Nemet wrote:
> haifa-sched.c:
> 2302 /* Let the target filter the search space. */
> 2303 for (i = 1; i < ready->n_ready; i++)
> 2304 if (!ready_try[i])
> 2305 {
> 2306 insn = ready_element (ready, i);
> 2307
> 2308 gcc_assert (INSN_CODE (insn) >= 0
> 2309 || recog_memoized (insn) < 0);
>
> I am hitting this assert with the Octeon pipeline patch. Isn't the check on
> recog_memoized reversed? Or are we really asserting here that the insn has
> either been recognized earlier or won't be recognized now either?!
Yes, the assert is really checking exactly that. Several pieces of
haifa-sched.c assume that the instruction has been recognized during
scheduler initialization to speed up checking if instruction is normal
or some kind of use/clobber/asm.
As max_issue () is one of hot spots in scheduler (and compiler), not
calling recog_memoized() saves up some time.
If the assert is failing, then something is wrong at initialization stage.
--
Maxim
More information about the Gcc
mailing list