match-and-simplify.texi: Adjust :s documentation.
authorRichard Biener <rguenther@suse.de>
Mon, 14 May 2018 10:35:06 +0000 (10:35 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 14 May 2018 10:35:06 +0000 (10:35 +0000)
2018-05-14  Richard Biener  <rguenther@suse.de>

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

From-SVN: r260223

gcc/ChangeLog
gcc/doc/match-and-simplify.texi

index edf2e41e2349340b20040775e444e707908a4b72..c8bb4c7b3dd42c21ff99ae68cd42d74225291720 100644 (file)
@@ -1,3 +1,7 @@
+2018-05-14  Richard Biener  <rguenther@suse.de>
+
+       * doc/match-and-simplify.texi: Adjust :s documentation.
+
 2018-05-14  Alexander Monakov  <amonakov@ispras.ru>
 
        * sort.cc (REORDER_23): Pass the type for the temporaries instead of
index 6bc2c47bee7e8fd0f87b5f2861d421f959578229..024d747cafdb5478dbad2a3e86d40dad58029b71 100644 (file)
@@ -250,7 +250,9 @@ come second in commutative expressions.
 
 The second supported flag is @code{s} which tells the code
 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
 (simplify
@@ -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
 used outside of the matched expression and thus it would stay
 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.