This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/67239] [6 Regression] FAIL: 23_containers/unordered_set/insert/hash_policy.cc execution test


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67239

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #6)
> Does this patch
> 
> diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
> index 2ac3828..8b57875 100644
> --- a/gcc/tree-ssa-sccvn.c
> +++ b/gcc/tree-ssa-sccvn.c
> @@ -4372,17 +4372,16 @@ sccvn_dom_walker::before_dom_children (basic_block
> bb)
>  	{
>  	  gimple *stmt = last_stmt (e->src);
>  	  if (stmt
> -	      && gimple_code (stmt) == GIMPLE_COND)
> +	      && gimple_code (stmt) == GIMPLE_COND
> +	      && (e->flags & EDGE_TRUE_VALUE) != 0)
>  	    {
>  	      enum tree_code code = gimple_cond_code (stmt);
>  	      tree lhs = gimple_cond_lhs (stmt);
>  	      tree rhs = gimple_cond_rhs (stmt);
> -	      record_conds (bb, code, lhs, rhs,
> -			    (e->flags & EDGE_TRUE_VALUE) != 0);
> +	      record_conds (bb, code, lhs, rhs, true);
>  	      code = invert_tree_comparison (code, HONOR_NANS (lhs));
>  	      if (code != ERROR_MARK)
> -		record_conds (bb, code, lhs, rhs,
> -			      (e->flags & EDGE_TRUE_VALUE) == 0);
> +		record_conds (bb, code, lhs, rhs, false);
>  	    }
>  	}
>      }
> 
> make any senses? Do we need to check EDGE_FALSE_VALUE?

No, even for the false edge we can record proper expressions, see
record_conds and how it handles the cases if the condition was true or false.

Can you please attach -details dumps of the pass instance that does this?

Note that the large number '5368709811' (0x1fffffff) might point to a
different issue elsewhere.  Did you double-check that makes sense?

Sorry for not investigating myself but I lack a x32 runtime environment.
It would help if you attach preprocessed source with a pointer to the
function that you believe is miscompiled.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]