This is the mail archive of the
mailing list for the GCC project.
[GSoC] Few questions regarding genmatch
- From: Prathamesh Kulkarni <bilbotheelffriend at gmail dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: gcc <gcc at gcc dot gnu dot org>, Diego Novillo <dnovillo at google dot com>, Maxim Kuvyrkov <maxim dot kuvyrkov at linaro dot org>
- Date: Wed, 7 May 2014 19:06:33 +0530
- Subject: [GSoC] Few questions regarding genmatch
- Authentication-results: sourceware.org; auth=none
I have few questions regarding genmatch:
a) When simplification fails, we continue pattern matching with the next pattern
in the order they appear in match.pd. Is that necessary ?
Could we not simply return false from gimple_match_and_simplify if
simplification fails ?
b) How do we handle manual pattern matching ? I mean
custom c-code written in match operand (Would manual matching be required?).
I believe the decision tree cannot be used for these match operands.
Either we could generate pattern matching code for these patterns
before the decision tree or after it.
c) There's a possibility of matching multiple patterns:
Consider following match operands:
(minus (bit_not @0))
and the same pattern written as c-code.
In this case, which pattern do we choose to match ?
(Unfortunately, I haven't been able to think of a real example,
in which we would have multiple patterns matched).
d) Should type of ifexpr be c_expr * instead of operand * in struct
simplify since we only allow c-code in ifexpr ?
e) Should we allow an optional name for pattern in match_and_simplify ?
The name can be used as label in generated gimple_match_and_simplify
instead of L<number>.
f) Lower-case operator names: Currently we accept operator name for lowercase,
uppercase and uppercase_EXPR. This is handled with
e_operation::e_operation. If we are to settle on lower-case names,
should we remove uppercase conversion and _EXPR code in e_operation ?
This causes problems since add_operator() only adds stringified tree
codes, which are uppercase appended with _EXPR.
As a quick-fix, is it fine to convert stringified tree-codes to lower-case names
(remove _EXPR and lowercase the remaining characters) ?