This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
mis-set value for trial in function fill_simple_delay_slots?
- From: "Amker.Cheng" <amker dot cheng at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Sun, 22 Nov 2009 18:44:00 +0800
- Subject: mis-set value for trial in function fill_simple_delay_slots?
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.