> From: Alexandre Oliva <aol...@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

Reply via email to