On Tue, Aug 9, 2016 at 2:42 PM, kugan <kugan.vivekanandara...@linaro.org> wrote: > > > On 09/08/16 23:43, kugan wrote: >> >> Hi, >> >> The test-case in PR72835 is failing with -O2 and passing with >> -fno-tree-reassoc. It also passes with -O2 -fno-tree-vrp. >> >> diff of .115t.dse2 and .116t.reassoc1 for the c++ testcase is as >> follows, which looks OK. >> >> + unsigned int _16; >> + unsigned int _17; >> + unsigned int _18; >> >> <bb 2>: >> _1 = s1.m2; >> _2 = (unsigned int) _1; >> _3 = s1.m3; >> _4 = (unsigned int) _3; >> - _5 = -_4; >> - _6 = _2 * _5; >> + _5 = _4; >> + _6 = _5 * _2; >> var_32.0_7 = var_32; >> _8 = (unsigned int) var_32.0_7; >> _9 = s1.m1; >> _10 = (unsigned int) _9; >> - _11 = -_10; >> - _12 = _8 * _11; >> - c_14 = _6 + _12; >> + _11 = _10; >> + _12 = _11 * _8; >> + _16 = _12 + _6; >> + _18 = _16; >> + _17 = -_18; >> + c_14 = _17; >> if (c_14 != 4098873984) >> >> >> However, I noticed that when we re-associate and assign different >> operands to the stmts, we are not resetting the flow information to the >> LHS. This looks wrong. Attached patch resets it. With this, the >> testcases in TH PR is now working. >> >> >> Bootstrap and regression testing for x86_64-linux-gnu is in progress. Is >> this OK for trunk if there is no regression. > > > There was no new regression while testing. I also moved the testcase from > gcc.dg/torture/pr72835.c to gcc.dg/tree-ssa/pr72835.c. Is this OK for trunk?
Why did you move the test-case from gcc.dg/torture to gcc.dg/tree-ssa? I think most executable testcases (that was using standard options) should be in tortue testcases to do a full sweep of the options. Thanks, Andrew > > Thanks, > Kugan > > gcc/testsuite/ChangeLog: > > 2016-08-10 Kugan Vivekanandarajah <kug...@linaro.org> > > PR tree-optimization/72835 > * gcc.dg/tree-ssa/pr72835.c: New test. > > gcc/ChangeLog: > > 2016-08-10 Kugan Vivekanandarajah <kug...@linaro.org> > > > PR tree-optimization/72835 > * tree-ssa-reassoc.c (rewrite_expr_tree): Reset value_range of LHS > when > operands are changed. > (rewrite_expr_tree_parallel): Likewise.