problem with the scheduler in gcc-4.0-20040911

Vladimir Makarov vmakarov@redhat.com
Tue Mar 8 15:14:00 GMT 2005


Kunal Parmar wrote:

>Following is the debugging dump by the scheduler -
>
>**************************************
>;;   ======================================================
>;;   -- basic block 1 from 17 to 89 -- after reload
>;;   ======================================================
>
>;;   --------------- forward dependences: ------------
>
>;;   --- Region Dependences --- b 1 bb 0
>;;      insn  code    bb   dep  prio  cost   reservation
>;;      ----  ----    --   ---  ----  ----   -----------
>;;       17     5     0     0     1     1   S1  :
>;;       18     5     0     0     1     1   S2  :
>;;       90    67     0     0     8     1   S2  : 89 91
>;;       91    66     0     1     7     1   S2  : 89
>;;       89   100     0     2     6     6   S2  :
>
>
>As can be seen in the assembly dump, one instruction is scheduled
>after the branch instruction. The branch is a conditionally executed
>branch instruction. This is incorrect because if the branch is
>executed then the instruction after that will not be executed.
>Please help.
>
>  
>
There is no dependency between insn 18 and 89 (the jump).  The scheduler 
automatically adds anti-dependencies between jump and previous sets.  So 
I think you jump insn is not represented as RTL JUMP_INSN.    The RTL 
dump after the scheduler could help more.

Vlad




More information about the Gcc mailing list