raja.sal...@iap-online.com writes:

>>> Is there a way to make the instruction has to allocate to run without
>>> using the scheduler for particular instruction ?
>>
>> I don't understand the question.
>
> The target we are using supports parallel instruction execution, Max 7.
> For one cycle, one instruction packet is executed. one packet has max 7
> instructions. so the scheduler is enabled. However, the scheduler enabling
> is not required for some packets. so how we can disable the instruction
> scheduling for particular packets ?

The scheduler in gcc schedules individual machine instructions.  Are
you asking about disabling the scheduler from the source code, or are
you asking about disabling the scheduler for specific instructions?
If you are talking about specific instructions, then you just need to
give them appropriate characteristics.  For example, if an instruction
is defined to use all the functional units, then it will not be
scheduled in any very meaningful way.

Note that gcc's scheduler is not really VLIW aware, and if there are
any constraints on the instructions to put them into a packet those
will have to be implemented in C code in your backend.  This is not a
simple task, but it has been done for some targets, such as the FRV.


>> Nothing is out of scope of the scheduler.  Using unspec_volatile in
>> the RTL template makes the instruction a scheduling barrier and a
>> memory barrier.
>
> Can you give more information or link to understand more about
> unspec_volatile ? The information available in gcc internals is not
> sufficient.

I don't know what to say beyond what is already in the internals
documentation.  I don't know of any more detailed documentation.  If
you ask a more specific question then perhaps somebody can answer it.

Ian

Reply via email to