Commit 485fa704 by Richard Biener Committed by Richard Biener

match-and-simplify.texi: Adjust :s documentation.

2018-05-14  Richard Biener  <rguenther@suse.de>

	* doc/match-and-simplify.texi: Adjust :s documentation.

From-SVN: r260223
parent c86ed2f1
2018-05-14 Richard Biener <rguenther@suse.de>
* doc/match-and-simplify.texi: Adjust :s documentation.
2018-05-14 Alexander Monakov <amonakov@ispras.ru> 2018-05-14 Alexander Monakov <amonakov@ispras.ru>
* sort.cc (REORDER_23): Pass the type for the temporaries instead of * sort.cc (REORDER_23): Pass the type for the temporaries instead of
......
...@@ -250,7 +250,9 @@ come second in commutative expressions. ...@@ -250,7 +250,9 @@ come second in commutative expressions.
The second supported flag is @code{s} which tells the code The second supported flag is @code{s} which tells the code
generator to fail the pattern if the expression marked with generator to fail the pattern if the expression marked with
@code{s} does have more than one use. For example in @code{s} does have more than one use and the simplification
results in an expression with more than one operator.
For example in
@smallexample @smallexample
(simplify (simplify
...@@ -261,6 +263,14 @@ generator to fail the pattern if the expression marked with ...@@ -261,6 +263,14 @@ generator to fail the pattern if the expression marked with
this avoids the association if @code{(pointer_plus @@0 @@1)} is this avoids the association if @code{(pointer_plus @@0 @@1)} is
used outside of the matched expression and thus it would stay used outside of the matched expression and thus it would stay
live and not trivially removed by dead code elimination. live and not trivially removed by dead code elimination.
Now consider @code{((x + 3) + -3)} with the temporary
holding @code{(x + 3)} used elsewhere. This simplifies down
to @code{x} which is desirable and thus flagging with @code{s}
does not prevent the transform. Now consider @code{((x + 3) + 1)}
which simplifies to @code{(x + 4)}. Despite being flagged with
@code{s} the simplification will be performed. The
simplification of @code{((x + a) + 1)} to @code{(x + (a + 1))} will
not performed in this case though.
More features exist to avoid too much repetition. More features exist to avoid too much repetition.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment