> > > > > > I think the patch causes the following on x86_64-linux-gnu: > > > FAIL: gfortran.dg/inline_matmul_17.f90 -O scan-tree-dump-times > > > optimized "matmul_r4" 2 > > > > I get that failure even with d70ef65692f (from before the patches > > I committed today). > > Sorry, you are right, it's one revision before: > d70ef65692fced7ab72e0aceeff7407e5a34d96d > > Honza, can you please take a look? The test looks for matmul_r4 calls which we now optimize out in fre1. This is because alias info is better now
afunc (&__var_5_mma); _188 = __var_5_mma.dim[0].ubound; _189 = __var_5_mma.dim[0].lbound; _190 = _188 - _189; _191 = _190 + 1; _192 = MAX_EXPR <_191, 0>; _193 = (real(kind=4)) _192; _194 = __var_5_mma.dim[1].ubound; _195 = __var_5_mma.dim[1].lbound; _196 = _194 - _195; _197 = _196 + 1; _198 = MAX_EXPR <_197, 0>; _199 = (real(kind=4)) _198; _200 = _193 * _199; _201 = _200 * 3.0e+0; if (_201 <= 1.0e+9) goto <bb 76>; [INV] else goto <bb 87>; [INV] <bb 76> : c = {}; afunc (&__var_5_mma); c = {}; Now afunc writes to __var_5_mma only indirectly so I think it is correct that we optimize the conditional out. Easy fix would be to add -fno-ipa-modref, but perhaps someone with better understanding of Fortran would help me to improve the testcase so the calls to matmul_r4 remains reachable? Honza