https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65650

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue Apr 21 12:52:43 2015
New Revision: 222267

URL: https://gcc.gnu.org/viewcvs?rev=222267&root=gcc&view=rev
Log:
2015-04-21  Richard Biener  <rguent...@suse.de>

    PR tree-optimization/65650
    * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
    transitions involving copies.
    (set_lattice_value): Adjust for copy lattice state.
    (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
    if that doesn't dominate the merge point.
    (bit_value_unop): Adjust what we treat as varying mask.
    (bit_value_binop): Likewise.
    (bit_value_assume_aligned): Likewise.
    (evaluate_stmt): When we simplified to a SSA name record a copy
    instead of dropping to varying.
    (visit_assignment): Simplify.

    * gimple-match.h (gimple_simplify): Add another callback.
    * gimple-fold.c (fold_stmt_1): Adjust caller.
    (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
    for the 2nd callback.
    * gimple-match-head.c (gimple_simplify): Add a callback that is
    used to valueize the stmt operands and use it that way.

    * gcc.dg/tree-ssa/ssa-ccp-37.c: New testcase.
    * gcc.dg/tree-ssa/forwprop-11.c: Adjust.
    * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
    * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise.
    * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
    * gcc.dg/tree-ssa/ssa-fre-32.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-37.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimple-fold.c
    trunk/gcc/gimple-match-head.c
    trunk/gcc/gimple-match.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/forwprop-11.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-32.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-4.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-5.c
    trunk/gcc/tree-ssa-ccp.c

Reply via email to