From: Richard Biener Date: Mon, 14 May 2018 10:35:06 +0000 (+0000) Subject: match-and-simplify.texi: Adjust :s documentation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=485fa7041bee21893c7db73884e9a87ac8eb286a;p=gcc.git match-and-simplify.texi: Adjust :s documentation. 2018-05-14 Richard Biener * doc/match-and-simplify.texi: Adjust :s documentation. From-SVN: r260223 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index edf2e41e234..c8bb4c7b3dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2018-05-14 Richard Biener + + * doc/match-and-simplify.texi: Adjust :s documentation. + 2018-05-14 Alexander Monakov * sort.cc (REORDER_23): Pass the type for the temporaries instead of diff --git a/gcc/doc/match-and-simplify.texi b/gcc/doc/match-and-simplify.texi index 6bc2c47bee7..024d747cafd 100644 --- a/gcc/doc/match-and-simplify.texi +++ b/gcc/doc/match-and-simplify.texi @@ -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.