genmatch.c (print_operand): Fix formatting.

2015-10-09  Richard Biener  <rguenther@suse.de>

	* genmatch.c (print_operand): Fix formatting.
	(dt_node::append_simplify): Warn for multiple simplifiers
	that match the same pattern.
	* match.pd (log (exp @0)): Remove duplicates.

From-SVN: r228648
This commit is contained in:
Richard Biener 2015-10-09 11:47:31 +00:00 committed by Richard Biener
parent 0c063d6032
commit eee7b6c4a2
3 changed files with 33 additions and 20 deletions

View File

@ -1,3 +1,10 @@
2015-10-09 Richard Biener <rguenther@suse.de>
* genmatch.c (print_operand): Fix formatting.
(dt_node::append_simplify): Warn for multiple simplifiers
that match the same pattern.
* match.pd (log (exp @0)): Remove duplicates.
2015-10-09 Richard Biener <rguenth@suse.de>
PR target/67366

View File

@ -710,13 +710,9 @@ print_operand (operand *o, FILE *f = stderr, bool flattened = false)
{
if (capture *c = dyn_cast<capture *> (o))
{
fprintf (f, "@%u", c->where);
if (c->what && flattened == false)
{
putc (':', f);
print_operand (c->what, f, flattened);
putc (' ', f);
}
print_operand (c->what, f, flattened);
fprintf (f, "@%u", c->where);
}
else if (predicate *p = dyn_cast<predicate *> (o))
@ -727,18 +723,22 @@ print_operand (operand *o, FILE *f = stderr, bool flattened = false)
else if (expr *e = dyn_cast<expr *> (o))
{
fprintf (f, "(%s", e->operation->id);
if (flattened == false)
if (e->ops.length () == 0)
fprintf (f, "%s", e->operation->id);
else
{
putc (' ', f);
for (unsigned i = 0; i < e->ops.length (); ++i)
fprintf (f, "(%s", e->operation->id);
if (flattened == false)
{
print_operand (e->ops[i], f, flattened);
putc (' ', f);
for (unsigned i = 0; i < e->ops.length (); ++i)
{
putc (' ', f);
print_operand (e->ops[i], f, flattened);
}
}
putc (')', f);
}
putc (')', f);
}
else
@ -1563,6 +1563,14 @@ dt_node::append_simplify (simplify *s, unsigned pattern_no,
dt_operand **indexes)
{
dt_simplify *n = new dt_simplify (s, pattern_no, indexes);
for (unsigned i = 0; i < kids.length (); ++i)
if (dt_simplify *s2 = dyn_cast <dt_simplify *> (kids[i]))
{
warning_at (s->match->location, "duplicate pattern");
warning_at (s2->s->match->location, "previous pattern defined here");
print_operand (s->match, stderr);
fprintf (stderr, "\n");
}
return append_node (n);
}

View File

@ -2169,18 +2169,16 @@ along with GCC; see the file COPYING3. If not see
(mult @0 (POW @1 (negate @2))))
/* Special case, optimize logN(expN(x)) = x. */
(for logs (LOG LOG2 LOG10)
exps (EXP EXP2 EXP10)
(for logs (LOG LOG2 LOG10 LOG10)
exps (EXP EXP2 EXP10 POW10)
(simplify
(logs (exps @0))
@0))
/* Optimize logN(func()) for various exponential functions. We
want to determine the value "x" and the power "exponent" in
order to transform logN(x**exponent) into exponent*logN(x). */
(for logs (LOG LOG LOG LOG
LOG2 LOG2 LOG2 LOG2
LOG10 LOG10 LOG10 LOG10)
exps (EXP EXP2 EXP10 POW10)
(for logs (LOG LOG LOG LOG2 LOG2 LOG2 LOG10 LOG10)
exps (EXP2 EXP10 POW10 EXP EXP10 POW10 EXP EXP2)
(simplify
(logs (exps @0))
(with {