Eric Botcazou wrote:
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.

What happens if an instruction hasn't been recognized upon reaching these parts of haifa-sched.c? Will it be only mis-scheduled, i.e. will this only result in inferior, but still correct code?

The code will still be correct, but I think there's more than 1 assert relying on this property, so GCC is likely to ICE.

If so, the assertion shouldn't be enabled in release mode but only if ENABLE_CHECKING is defined.

I don't see the logic here. It is certainly not that hard to fix the code to make this assertion trivial, simple loop through all insns in sched_init() will do it. There is a bug and it should get fixed rather than suppressed.

Or maybe I misunderstood you?

--
Maxim

Reply via email to