Steve Ellcey <sell...@imgtec.com> writes:
> On Wed, 2013-04-24 at 07:45 +0100, Richard Sandiford wrote:
>> "Steve Ellcey " <sell...@imgtec.com> writes:
>> > 2013-04-19  Andrew Bennett <andrew.benn...@imgtec.com>
>> >        Steve Ellcey  <sell...@imgtec.com>
>> >
>> >    PR target/56942
>> >    * config/mips/mips.md (casesi_internal_mips16_<mode>): Use
>> >    next_active_insn instead of next_real_insn.
>> 
>> Hmm, I don't really like this.  Steven said from ARM in
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56809:
>> 
>> -----------------------------------------------------------------------
>> Target bug, this is wrong:
>> 
>>   rtx diff_vec = PATTERN (next_real_insn (operands[2]));
>> 
>> A jump_table_data is not a real insn.  Before my patch this worked
>> by accident because the jump table would hide in a JUMP_INSN and 
>> next_real_insn returned any JUMP_P insn.
>> 
>> Use next_active_insn instead.
>> -----------------------------------------------------------------------
>> 
>> But using next_real_insn was at least as correct (IMO, more correct)
>> as next_active_insn before r197266.  It seems counterintuitive that
>> something can be "active" but not "real".
>> 
>> Richard
>
> So should we put the active_insn_p hack/FIXME into real_next_insn?  That
> doesn't seem like much of a win but it would probably fix the problem.

Yeah, I think so.  If "=>" mean "accepts more than", then there used
to be a nice total order:

     next_insn
  => next_nonnote_insn
  => next_real_insn
  => next_active_insn

I think we should keep that if possible, even during the transition period.

Thanks,
Richard

Reply via email to