This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
is picked.

> 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
> queue_to_ready(&ready);

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.


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]