From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32066 invoked by alias); 3 Jul 2008 11:42:57 -0000 Received: (qmail 31803 invoked by uid 48); 3 Jul 2008 11:42:13 -0000 Date: Thu, 03 Jul 2008 11:42:00 -0000 Message-ID: <20080703114213.31802.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/36713] [4.4 regression] r137252 breaks -O2 optimization on x86_64-unknown-linux-gnu In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dfranke 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-07/txt/msg00169.txt.bz2 ------- Comment #7 from dfranke at gcc dot gnu dot org 2008-07-03 11:42 ------- Differences in *.optimized dumps seem to be variable renaming only, e.g. - temp.1140 = tdata->p; + temp.1137 = tdata->p; Differences in *.alias seems to be mostly of the kind: -PARM_NOALIAS.895 = &ANYTHING +PARM_NOALIAS.895 = &ESCAPED However, I also found: -PARM_NOALIAS.895 = { ANYTHING ESCAPED NONLOCAL } -D.3410_6 = same as thread_data -thread_data = { ANYTHING } -D.3411_7 = same as thread_data +PARM_NOALIAS.895 = { ESCAPED NONLOCAL } +D.3410_6 = same as derefaddrtmp.893 +thread_data = same as derefaddrtmp.893 <---- ?!? +D.3411_7 = same as derefaddrtmp.893 which might hint at the problem: the variable thread_data is an allocated POINTER to a vector of structures (which hold more pointers), public within a module. USE-ing it, makes it (sort of) local to the function. Most (>80% of all) changes in *.optimized where in the one source file that uses this module ... Richard, would this fit the bill? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36713