+2015-08-31 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/67381
+ * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
+
2015-08-31 Marc Glisse <marc.glisse@inria.fr>
* match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
else
gcc_unreachable ();
}
- else if (kids[i]->type == dt_node::DT_MATCH
- || kids[i]->type == dt_node::DT_SIMPLIFY)
+ else if (kids[i]->type == dt_node::DT_SIMPLIFY)
others.safe_push (kids[i]);
- else if (kids[i]->type == dt_node::DT_TRUE)
+ else if (kids[i]->type == dt_node::DT_MATCH
+ || kids[i]->type == dt_node::DT_TRUE)
{
/* A DT_TRUE operand serves as a barrier - generate code now
+ for what we have collected sofar.
+ Like DT_TRUE, DT_MATCH serves as a barrier as it can cause
+ dependent matches to get out-of-order. Generate code now
for what we have collected sofar. */
gen_kids_1 (f, indent, gimple, gimple_exprs, generic_exprs,
fns, generic_fns, preds, others);