[PATCH] Fix PR60849
Richard Biener
rguenther@suse.de
Thu Apr 17 11:39:00 GMT 2014
On Thu, 17 Apr 2014, Marc Glisse wrote:
> On Thu, 17 Apr 2014, Richard Biener wrote:
>
> > This fixes PR60849 by properly rejecting non-boolean typed
> > comparisons from valid_gimple_rhs_p so they go through the
> > gimplification paths.
>
> Could you also accept vector comparisons please?
Sure. Testing in progress.
Richard.
2014-04-17 Richard Biener <rguenther@suse.de>
PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
comparison results and add clarifying comment.
Index: gcc/tree-ssa-propagate.c
===================================================================
--- gcc/tree-ssa-propagate.c (revision 209469)
+++ gcc/tree-ssa-propagate.c (working copy)
@@ -572,9 +572,13 @@ valid_gimple_rhs_p (tree expr)
break;
case tcc_comparison:
- if (!INTEGRAL_TYPE_P (TREE_TYPE (expr))
- || (TREE_CODE (TREE_TYPE (expr)) != BOOLEAN_TYPE
- && TYPE_PRECISION (TREE_TYPE (expr)) != 1))
+ /* GENERIC allows comparisons with non-boolean types, reject
+ those for GIMPLE. Let vector-typed comparisons pass - rules
+ for GENERIC and GIMPLE are the same here. */
+ if (!(INTEGRAL_TYPE_P (TREE_TYPE (expr))
+ && (TREE_CODE (TREE_TYPE (expr)) == BOOLEAN_TYPE
+ || TYPE_PRECISION (TREE_TYPE (expr)) == 1))
+ && TREE_CODE (TREE_TYPE (expr)) != VECTOR_TYPE)
return false;
/* Fallthru. */
More information about the Gcc-patches
mailing list