Message ID | 201105091331.46507.ebotcazou@adacore.com |
---|---|
State | New |
Headers | show |
On Mon, 9 May 2011, Eric Botcazou wrote: > doesn't affect code generation, I think it's appropriate for all branches. It > seems to introduce a couple of XPASSes in the guality testsuite on i586: > > XPASS: gcc.dg/guality/inline-params.c -O2 -flto execution test > XPASS: gcc.dg/guality/pr41447-1.c -O2 -flto execution test The guality tests have random results. I don't know if that's the issue here, but perhaps someone can review Jeff's patch <http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01060.html> to make them more predictable. Without that, I generally just ignore them in comparisons of test results.
On May 9, 2011, at 6:05 AM, Joseph S. Myers wrote: > The guality tests have random results. I don't know if that's the issue > here, but perhaps someone can review Jeff's patch > <http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01060.html> to make them > more predictable. Without that, I generally just ignore them in > comparisons of test results. :-( Thanks for the heads up. I've approved it. If people find those testcases useful, please, ensure they are deterministic and test something useful. If they aren't up to standards as a whole, I'd entertain just adding a return 0 near the top of the .exp file to prompt people that would like them in the tree to address outstanding issues.
Index: var-tracking.c =================================================================== --- var-tracking.c (revision 173545) +++ var-tracking.c (working copy) @@ -4113,8 +4113,9 @@ find_mem_expr_in_1pdv (tree expr, rtx va VALUE_RECURSED_INTO (val) = true; for (node = var->var_part[0].loc_chain; node; node = node->next) - if (MEM_P (node->loc) && MEM_EXPR (node->loc) == expr - && MEM_OFFSET (node->loc) == 0) + if (MEM_P (node->loc) + && MEM_EXPR (node->loc) == expr + && INT_MEM_OFFSET (node->loc) == 0) { where = node; break; @@ -4177,11 +4178,10 @@ dataflow_set_preserve_mem_locs (void **s { for (loc = var->var_part[0].loc_chain; loc; loc = loc->next) { - /* We want to remove dying MEMs that doesn't refer to - DECL. */ + /* We want to remove dying MEMs that doesn't refer to DECL. */ if (GET_CODE (loc->loc) == MEM && (MEM_EXPR (loc->loc) != decl - || MEM_OFFSET (loc->loc)) + || INT_MEM_OFFSET (loc->loc) != 0) && !mem_dies_at_call (loc->loc)) break; /* We want to move here MEMs that do refer to DECL. */ @@ -4225,7 +4225,7 @@ dataflow_set_preserve_mem_locs (void **s if (GET_CODE (loc->loc) != MEM || (MEM_EXPR (loc->loc) == decl - && MEM_OFFSET (loc->loc) == 0) + && INT_MEM_OFFSET (loc->loc) == 0) || !mem_dies_at_call (loc->loc)) { if (old_loc != loc->loc && emit_notes)