This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]