From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29783 invoked by alias); 20 Nov 2008 12:14:49 -0000 Received: (qmail 18833 invoked by alias); 20 Nov 2008 12:13:28 -0000 Date: Thu, 20 Nov 2008 12:14:00 -0000 Message-ID: <20081120121328.18831.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/37868] [4.3 Regression] code that breaks TBAA is misoptimized even with -fno-strict-aliasing In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-11/txt/msg01660.txt.bz2 ------- Comment #8 from rguenth at gcc dot gnu dot org 2008-11-20 12:13 ------- Subject: Bug 37868 Author: rguenth Date: Thu Nov 20 12:12:01 2008 New Revision: 142040 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142040 Log: 2008-11-20 Richard Guenther PR tree-optimization/37868 * tree-ssa-structalias.c (set_uids_in_ptset): Add SFTs based on pointed to variable and access size. * gcc.dg/torture/pr37868.c: New testcase. * gcc.c-torture/execute/pr38048-1.c: Likewise. * gcc.c-torture/execute/pr38048-2.c: Likewise. Backport from mainline: 2008-07-07 Richard Guenther * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag. (new_var_info): Set it to false. (solution_set_add): Correctly handle pointers outside a var and inside a field. (type_safe): Treat variables with is_full_var properly. (do_sd_constraint): Likewise. (do_ds_constraint): Likewise. (process_constraint): Remove zeroing offset for !use_field_sensitive. (get_constraint_for_ptr_offset): New function. (get_constraint_for_component_ref): Handle is_full_vars properly. (get_constraint_for): Handle POINTER_PLUS_EXPR. (handle_ptr_arith): Remove. (find_func_aliases): Handle POINTER_PLUS_EXPR through generic get_constraint_for code. (create_function_info_for): For parameter and result varinfos set is_full_var flag. (create_variable_info_for): Set is_full_var flag whenever we just created a single varinfo for a decl. (init_alias_vars): Initialize use_field_sensitive from max-fields-for-field-sensitive parameter. * gcc.dg/torture/pta-ptrarith-1.c: New testcase. * gcc.dg/torture/pta-ptrarith-2.c: Likewise. Added: branches/gcc-4_3-branch/gcc/testsuite/gcc.c-torture/execute/pr38048-1.c branches/gcc-4_3-branch/gcc/testsuite/gcc.c-torture/execute/pr38048-2.c branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pr37868.c branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c branches/gcc-4_3-branch/gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/testsuite/ChangeLog branches/gcc-4_3-branch/gcc/tree-ssa-structalias.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37868