mis-set value for trial in function fill_simple_delay_slots?
Amker.Cheng
amker.cheng@gmail.com
Sun Nov 22 10:45:00 GMT 2009
Hi :
In function fill_simple_delay_slots, there is following codes:
-------------------------------->starts here
/* If there are slots left to fill and our search was stopped by an
unconditional branch, try the insn at the branch target. We can
redirect the branch if it works.
Don't do this if the insn at the branch target is a branch. */
if (slots_to_fill != slots_filled
&& trial
&& JUMP_P (trial)
&& simplejump_p (trial)
&& (target == 0 || JUMP_LABEL (trial) == target)
&& ...)
--------------------------------<ends here
it comes from codes trying to get insns from beyond the insn needing
the delay slot,
but IMHO the variable "trial" might contain data computed from
previous codes which scan
backwards from the insn to search for a potential delay-slot
candidate, since the if statement
before these codes is taken only if (target==0).
Am right or I've missed anything important?
--
Best Regards.
More information about the Gcc
mailing list