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