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/36400] [4.2/4.3/4.4 Regression] points-to results wrong



------- Comment #4 from rguenth at gcc dot gnu dot org  2008-06-27 18:54 -------
Subject: Bug 36400

Author: rguenth
Date: Fri Jun 27 18:53:43 2008
New Revision: 137197

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137197
Log:
2008-06-27  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/36400
        PR tree-optimization/36373
        PR tree-optimization/36344
        * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
        var_nonlocal, nonlocal_tree, nonlocal_id): New globals
        (update_alias_info): Remove call clobbering code.
        (make_constraint_to): New helper function.
        (make_escape_constraint): Likewise.
        (handle_rhs_call): Use it on all pointer containing arguments.
        Also mark the static chain escaped.
        (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
        instead of ANYTHING.
        (make_constraint_from): New helper split out from ...
        (make_constraint_from_anything): ... here.
        (find_func_aliases): Add constraints for escape sites.
        (intra_create_variable_infos): Make constraints from NONLOCAL
        for parameters.
        (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
        as ANYTHING.
        (clobber_what_p_points_to): Remove.
        (clobber_what_escaped): New function.
        (init_base_vars): Init NONLOCAL and ESCAPED.
        (do_sd_constraint): Do not propagate the solution from ESCAPED
        but use ESCAPED as a placeholder.
        (solve_graph): Likewise.
        * tree-flow.h (clobber_what_p_points_to): Remove.
        (clobber_what_escaped): Declare.
        * tree-ssa-alias.c (set_initial_properties): Call it.
        Remove code clobbering escaped pointers.

        * gcc.dg/torture/pr36373-1.c: New testcase.
        * gcc.dg/torture/pr36373-2.c: Likewise.
        * gcc.dg/torture/pr36373-3.c: Likewise.
        * gcc.dg/torture/pr36373-4.c: Likewise.
        * gcc.dg/torture/pr36373-5.c: Likewise.
        * gcc.dg/torture/pr36373-6.c: Likewise.
        * gcc.dg/torture/pr36373-7.c: Likewise.
        * gcc.dg/torture/pr36373-8.c: Likewise.
        * gcc.dg/torture/pr36373-9.c: Likewise.
        * gcc.dg/torture/pr36373-10.c: Likewise.
        * gcc.dg/torture/pr36400.c: Likewise.
        * gcc.c-torture/execute/pta-field-1.c: Likewise.
        * gcc.c-torture/execute/pta-field-2.c: Likewise.
        * gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL.
        * gcc.dg/tree-ssa/pr24287.c: XFAIL.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr24287.c
    trunk/gcc/tree-flow.h
    trunk/gcc/tree-ssa-alias.c
    trunk/gcc/tree-ssa-structalias.c


-- 


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


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