This is the mail archive of the gcc-patches@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]

Re: Reload bug



  In message <vyzemvnie5r.fsf@issan.informatik.uni-dortmund.de>you write:
  > "David S. Miller" <davem@dm.cobaltmicro.com> writes:
  > 
  > |>    From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
  > |>    Date: 15 Jul 1998 11:20:27 +0200
  > |> 
  > |>    The function reg_overlap_mentioned_for_reload_p can only be called
  > |>    for certain rtx.  A zero_extract is not one of them.
  > |> 
  > |> Do you have a small testcase which can trigger this bug?
  > 
  > I have a test case, but it is rather big.  I'll try to construct a small
  > one, now that i've understood the problem.
  > 
  > |> It's not that I think your fix is incorrect, however I'd like to have
  > |> a test case to get a better idea of what is going wrong.
  > 
  > The problem was that there was an insn of the form
  > 
  > (set (zero_extract ...) (const_int 0))
  > 
  > and find_reg_equiv was called with goal == (const_int 0).  true_regnum
  > returns -1 for zero_extract, thus the value of
  > reg_overlap_mentioned_for_reload_p doesn't matter anyway.
The real bug is in reg_overlap_mentioned_p and _for_reload_p.  There's
no reason they can not be called with STRICT_LOW_PART, ZERO_EXTRACT,
etc etc.

jeff


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