On Fri, Nov 30, 2012 at 1:29 PM, Uros Bizjak <ubiz...@gmail.com> wrote:
>>>> 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. > > I'm preparing a detailed PR. Reported as PR55547. Uros.