From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30092 invoked by alias); 30 Nov 2012 14:52:16 -0000 Received: (qmail 30069 invoked by uid 22791); 30 Nov 2012 14:52:14 -0000 X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_BG,TW_ZJ X-Spam-Check-By: sourceware.org Received: from mail-la0-f47.google.com (HELO mail-la0-f47.google.com) (209.85.215.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 30 Nov 2012 14:52:05 +0000 Received: by mail-la0-f47.google.com with SMTP id u2so420043lag.20 for ; Fri, 30 Nov 2012 06:52:03 -0800 (PST) Received: by 10.112.31.200 with SMTP id c8mr923813lbi.61.1354287123696; Fri, 30 Nov 2012 06:52:03 -0800 (PST) MIME-Version: 1.0 Received: by 10.112.88.99 with HTTP; Fri, 30 Nov 2012 06:51:23 -0800 (PST) In-Reply-To: References: <50B88CDF.6030508@gnu.org> From: Steven Bosscher Date: Fri, 30 Nov 2012 14:54:00 -0000 Message-ID: Subject: Re: [PATCH] Fix allocation of reg_known_value To: Uros Bizjak Cc: Paolo Bonzini , gcc-patches@gcc.gnu.org, Alexandre Oliva Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-11/txt/msg02550.txt.bz2 On Fri, Nov 30, 2012 at 1:29 PM, Uros Bizjak wrote: > On Fri, Nov 30, 2012 at 11:42 AM, Steven Bosscher wrote: >> On Fri, Nov 30, 2012 at 11:39 AM, Paolo Bonzini wrote: >>> Il 29/11/2012 23:47, Uros Bizjak ha scritto: >>>> This one-liner causes following runtime test failure [1] for >>>> alphaev68-linux-gnu: >>>> >>>> FAIL: gfortran.fortran-torture/execute/save_1.f90 execution, -O2 >>>> FAIL: gfortran.fortran-torture/execute/save_1.f90 execution, -O2 >>>> -fomit-frame-pointer -finline-functions >>>> FAIL: gfortran.fortran-torture/execute/save_1.f90 execution, -O2 >>>> -fomit-frame-pointer -finline-functions -funroll-loops >>>> FAIL: gfortran.fortran-torture/execute/save_1.f90 execution, -O2 >>>> -fbounds-check >>>> >>>> The patch miscompiles libgfortran library. >>>> >>>> I will provide more info tomorrow, any hint what/where should I look >>>> for differences? >>> >>> Anywhere. The bug disabled a large part of alias analysis. >>> >>> Perhaps you can bisect it and backport the fix along the steps. >> >> Or open a PR and assign it to me, ultimately I'm responsible for this breakage. > > I have found the problem. Luckily, it is the testcase that is > miscompiled. The problem is in sched1 pass that moves write to an > address "addrX" that happens to be aliased with AND mutilated address > "addrY & -7". The improved alias analysis does not notice that the > write is inside (addr & -7) region, allowing write to be moved after > read. Based on this description of the problem, I remembered these patches from Alexandre: 2012-07-06 Alexandre Oilva <> PR rtl-optimization/53827 PR debug/53671 PR debug/49888 * alias.c (memrefs_conflict_p): Adjust offset and size by the same amount for alignment ANDs. 2012-06-21 Alexandre Oliva <> PR debug/53671 PR debug/49888 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment. They are r188868 and r189325. Can you try revert these and see if that fixes your problem (probably at the expense of some other problem returning, but at least it'd be a good place to start looking further...). Ciao! Steven