genmatch.c (struct expr): Add force_single_use flag.
authorRichard Biener <rguenther@suse.de>
Thu, 9 Jul 2015 12:23:22 +0000 (12:23 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 9 Jul 2015 12:23:22 +0000 (12:23 +0000)
commit44fc0a5136eea2fb4eb7d46a8065ee518f6eb575
tree786e34083516679a8f0e676f714a27a7fad71cfe
parentd48ca70553f3884bff4827c98e1fd21f10bdc463
genmatch.c (struct expr): Add force_single_use flag.

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

* genmatch.c (struct expr): Add force_single_use flag.
(expr::expr): Add copy constructor.
(capture_info::walk_match): Gather force_single_use captures.
(expr::gen_transform): Use possibly NULLified sequence.
(dt_simplify::gen): Apply single-use restrictions by NULLifying
seq if any constrained expr is not single-use.
(parser::parse_expr): Refactor to allow multiple flags.  Handle
's' flag to force an expression have a single-use if the pattern
simplifies to more than one statement.
* match.pd: Convert most single_use conditionals to :s flags.

From-SVN: r225610
gcc/ChangeLog
gcc/genmatch.c
gcc/match.pd