Improvement for update_equiv_regs

Jeffrey A Law law@hurl.cygnus.com
Sun Feb 28 18:15:00 GMT 1999


  In message < 199902092120.VAA27698@phal.cygnus.co.uk >you write:
  > > Tue Feb  9 18:23:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
  > ...
  > > 	* optabs.c (expand_binop): Also add REG_EQUAL note to single-insn
  > > 	sequence.
  > 
  > That in turn triggered an alias bug.  When faced with
  > 
  > (insn 78 76 79 (set (reg:SI 41)
  >         (plus:SI (reg/v:SI 26)
  >             (const_int 1))) -1 (nil)
  >     (expr_list:REG_EQUAL (plus:SI (reg:SI 41)
  >             (const_int 1))
  >         (nil)))
  > 
  > init_aliaas_analysis will set reg_known_value[41] to
  > (plus:SI (reg:SI 41) (const_int 1)) , thus causing infinite recursion of
  > canon_rtx.  Here is a fix:
  > 
  > Tue Feb  9 21:14:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
  > 
  > 	* alias.c (init_alias_analysis): Avoid self-referential value
  > 	when setting reg_known_value from REG_EQUAL notes.
Ironic.  I was looking at a ppc bug report from the egcs-1.1.1 release which
was basically the same thing, except that it wasn't triggered by any recent
changes or submissions.

I've installed this patch into the mainline as well as the release branch.

Thanks,
jeff



More information about the Gcc-patches mailing list