This is the mail archive of the
mailing list for the GCC project.
Re: Defining scheduling resource constraint
On 11/07/2012 11:41 AM, Paulo Matos wrote:
> Yes, the reordering works fine. The problem is when I change the
> value of *n_readyp. The c6x port returns n_ready (which for me
> doesn't make sense since the max insns I can schedule in a cycle is 2
> which is my issue_rate), but doesn't change *n_readyp.
Look at the caller of the hook - they check the return value to see if
any more instructions can be issued. If yes, the one highest on the list
> If I don't
> change *n_readyp I am not actually 'removing' the insn from ready but
> simply reordering it. The docs say I can modify *n_readyp but any
> attempt to do so is causing an ice at schedule_block with
> instruction: gcc_assert(ready.n_ready) after the call to
Yes... I seem to remember the documentation is just wrong for that hook
(and the interface is somewhat broken). As you noted, you can't just
remove insns from the ready list without moving them somewhere else.