Sorry, no need already to bother with the last question, already knew that it
is (again) generated automatically from the Machine description file ....



petruk_gile wrote:
> 
> Thanks .. your reply is really helpful  ...
> 
> Btw, I checked the MIPS backend at MIPS.c, but I can't find the definition
> of some functions such as: 
> 
> get_attr_hazard(), gen_hazard_nop (), etc. 
> 
> Anyone know where those functions defined? 
> 
> 
> 
> 
> Ian Lance Taylor-3 wrote:
>> 
>> petruk_gile <[EMAIL PROTECTED]> writes:
>> 
>>> I'm a pure beginner in GCC, and currently working on a project to
>>> implement
>>> instruction scheduling for a new DSP processor. This processor doesn't
>>> have
>>> pipeline interlock, so the compiler HAVE to schedule the instruction
>>> without
>>> relying on hardware help anymore .... 
>>> 
>>> The problem is, I'm a very beginner in GCC. I think the scheduling in
>>> GCC is
>>> activated by INSN_SCHEDULING variable (in automatically generated file:
>>> insn-attr.h), but I don't even know how to  activate this variable.
>> 
>> INSN_SCHEDULING will automatically be turned on if you have any
>> define_insn_reservation clauses in your CPU.md file.  See the
>> "Processor pipeline description" documentation in the gcc internals
>> manual.
>> 
>> That said, the gcc scheduler unfortunately does not work very well for
>> processors which do not have hardware interlocks.  The scheduler will
>> lay out the instructions more or less optimally.  But the scheduler
>> has no ability to insert nops when they are required to satisfy
>> interlock constraints.
>> 
>> I know of two workable approachs.  You can either insert the required
>> nops in the TARGET_MACHINE_DEPENDENT_REORG pass or in the
>> TARGET_ASM_FUNCTION_PROLOGUE hook.  I personally prefer the latter
>> approach, as it takes effect after all other instruction rearrangement
>> is complete, but there are existing backends which use the former.
>> 
>> For an example of inserting nops in TARGET_MACHINE_DEPENDENT_REORG,
>> see the MIPS backend, specifically mips_avoid_hazards.  For an example
>> of inserting nops in TARGET_ASM_FUNCTION_PROLOGUE, see the FRV
>> backend, specifically frv_pack_insns.
>> 
>> Ian
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-to-activate-instruction-scheduling-in-GCC--tf4167590.html#a11941887
Sent from the gcc - Dev mailing list archive at Nabble.com.

Reply via email to