Keep static VTA locs in cselib tables only

Hans-Peter Nilsson hans-peter.nilsson@axis.com
Mon Jan 2 05:23:00 GMT 2012


> From: Alexandre Oliva <aoliva@redhat.com>
> Date: Sat, 31 Dec 2011 20:57:24 +0100

> 	  * cselib.h (cselib_add_permanent_equiv): Declare.
> 	  (canonical_cselib_val): New.
> 	  * cselib.c (new_elt_loc_list): Rework to support value
> 	  equivalences.  Adjust all callers.
> 	  (preserve_only_constants): Retain value equivalences.
> 	  (references_value_p): Retain preserved values.
> 	  (rtx_equal_for_cselib_1): Handle value equivalences.
> 	  (cselib_invalidate_regno): Use canonical value.
> 	  (cselib_add_permanent_equiv): New.
> 	  * alias.c (find_base_term): Reset locs lists while recursing.
> 	  * var-tracking.c (val_bind): New.  Don't add equivalences
> 	  present in cselib table, compared with code moved from...
> 	  (val_store): ... here.
> 	  (val_resolve): Use val_bind.
> 	  (VAL_EXPR_HAS_REVERSE): Drop.
> 	  (add_uses): Do not create MOps for addresses.  Do not mark
> 	  non-REG non-MEM expressions as requiring resolution.
> 	  (reverse_op): Record reverse as a cselib equivalence.
> 	  (add_stores): Use it.  Do not create MOps for addresses.
> 	  Do not require resolution for non-REG non-MEM expressions.
> 	  Simplify support for reverse operations.
> 	  (compute_bb_dataflow): Drop reverse support.
> 	  (emit_notes_in_bb): Likewise.
> 	  (create_entry_value): Rename to...
> 	  (record_entry_value): ... this.  Use cselib equivalences.
> 	  (vt_add_function_parameter): Adjust.

This (r182760) caused regressions in the libstdc++ testsuite for
cris-elf, PR51728.

brgds, H-P



More information about the Gcc-patches mailing list