This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/30375] [4.3 Regression] tree-ssa-dse incorrectly removes struct initialization



------- Comment #31 from rguenth at gcc dot gnu dot org  2007-09-26 11:55 -------
Subject: Bug 30375

Author: rguenth
Date: Wed Sep 26 11:55:17 2007
New Revision: 128810

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128810
Log:
2007-09-26  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/30375
        PR tree-optimization/33560
        * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
        with calls.

        Revert
        2006-05-22  Aldy Hernandez  <aldyh@redhat.com>

        * tree-ssa-dse.c (aggregate_vardecl_d): New.
        (dse_global_data): Add aggregate_vardecl field.
        (dse_possible_dead_store_p): New.
        Add prev_defvar variable.
        Allow immediate uses and previous immediate uses to differ
        if they are setting different parts of the whole.
        (get_aggregate_vardecl): New.
        (dse_record_partial_aggregate_store): New.
        (dse_whole_aggregate_clobbered_p): New.
        (dse_partial_kill_p): New.
        Call dse_maybe_record_aggregate_store().
        When checking whether a STMT and its USE_STMT refer to the
        same memory address, check also for partial kills that clobber
        the whole.
        Move some variable definitions to the block where they are used.
        (aggregate_vardecl_hash): New.
        (aggregate_vardecl_eq): New.
        (aggregate_vardecl_free): New.
        (aggregate_whole_store_p): New.
        (tree_ssa_dse): Initialize and free aggregate_vardecl.
        Mark which aggregate stores we care about.

        * gcc.dg/tree-ssa/complex-4.c: XFAIL.
        * gcc.dg/tree-ssa/complex-5.c: Likewise.
        * gcc.dg/tree-ssa/ssa-dse-9.c: Likewise.
        * gcc.dg/torture/pr30375.c: New testcase.
        * gcc.dg/torture/pr33560.c: New testcase.
        * gcc.dg/tree-ssa/pr30375.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr30375.c
    trunk/gcc/testsuite/gcc.dg/torture/pr33560.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr30375.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/complex-4.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/complex-5.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-9.c
    trunk/gcc/tree-ssa-dse.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30375


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]