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