]> git.ipfire.org Git - thirdparty/gcc.git/commit
2015-07-14 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jul 2015 07:25:55 +0000 (07:25 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jul 2015 07:25:55 +0000 (07:25 +0000)
commitd74b73356f755a6f806c6ccb78e2ed660cc151b5
treeccc608c672b2695baf0c2f4456fb027e99928f9e
parent213c9452739fa51362ec28c8c01ccb8c4680b575
2015-07-14  Richard Biener  <rguenther@suse.de>

* genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
(struct if_expr): New.
(struct with_expr): Likewise.
(is_a_helper): Add helpers for if_expr and with_expr.
(struct simplify): Add simplify_kind enum and member.  Remove
ifexpr_vec member.
(simplify::simplify): Adjust.
(lower_commutative): Adjust.
(lower_opt_convert): Likewise.
(lower_cond): Likewise.
(replace_id): Handle with_expr and if_expr.
(lower_for): Adjust.
(dt_simplify::gen_1): New recursive worker, split out from ...
(dt_simplify::gen): ... here.  Deal with if and with expansion
recursively.
(capture_info::capture_info): Take context argument
(capture_info::walk_result): Only analyze specific result.
(parser::parse_result): New function.
(parser::parse_simplify): Adjust to parse ifs with then end
else case.
(parser::parse_if): Simplify.
(parser::parse_pattern): Pass down simplify kind.
* match.pd: Convert if structure to new syntax.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225760 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/genmatch.c
gcc/match.pd