On Fri, 2017-01-27 at 13:20 +0100, Richard Biener wrote:
> On Thu, Jan 26, 2017 at 5:52 PM, David Malcolm <dmalc...@redhat.com>
> wrote:
> > The "internals" documentation has a "Testsuites" chapter; this
> > patch
> > adds some notes to it, describing the __GIMPLE and __RTL extensions
> > to the C frontend.
> > 
> > Builds; passed visual inspection of .info, .html, .pdf. and .dvi.
> > 
> > OK for trunk?
> > 
> > gcc/ChangeLog:
> >         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
> >         "RTL Tests" to menu.
> >         (GIMPLE Tests): New node.
> >         (RTL Tests): New node.
> > ---
> >  gcc/doc/sourcebuild.texi | 89
> > ++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 89 insertions(+)
> > 
> > diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
> > index 292a3c7..6c047288 100644
> > --- a/gcc/doc/sourcebuild.texi
> > +++ b/gcc/doc/sourcebuild.texi
> > @@ -863,6 +863,8 @@ here; FIXME: document the others.
> >  * profopt Testing:: Support for testing profile-directed
> > optimizations.
> >  * compat Testing::  Support for testing binary compatibility.
> >  * Torture Tests::   Support for torture testing using multiple
> > options.
> > +* GIMPLE Tests::    Support for testing GIMPLE passes.
> > +* RTL Tests::       Support for testing RTL passes.
> >  @end menu
> > 
> >  @node Test Idioms
> > @@ -2931,3 +2933,90 @@ set ADDITIONAL_TORTURE_OPTIONS  [list \
> >    @{ -O2 -ftree-loop-linear @} \
> >    @{ -O2 -fpeel-loops @} ]
> >  @end smallexample
> > +
> > +@node GIMPLE Tests
> > +@section Support for testing GIMPLE passes
> > +
> > +As of gcc 7, C functions can be tagged with @code{__GIMPLE} to
> > indicate
> > +that the function body will be RTL, rather than C.  The compiler
> > requires the
> 
> GIMPLE, not RTL

Oops; fixed.

> > +option @option{-fgimple} to enable this functionality.  For
> > example:
> > +
> > +@smallexample
> > +/* @{ dg-do compile @} */
> > +/* @{ dg-options "-O -fgimple" @} */
> > +
> > +void __GIMPLE (startwith ("dse2")) foo ()
> > +@{
> > +  int a;
> > +
> > +bb_2:
> > +  if (a > 4)
> > +    goto bb_3;
> > +  else
> > +    goto bb_4;
> > +
> > +bb_3:
> > +  a_2 = 10;
> > +  goto bb_5;
> > +
> > +bb_4:
> > +  a_3 = 20;
> > +
> > +bb_5:
> > +  a_1 = __PHI (bb_3: a_2, bb_4: a_3);
> > +  a_4 = a_1 + 4;
> > +
> > +  return;
> > +@}
> > +@end smallexample
> > +
> > +The @code{startwith} argument indicates at which pass to begin.
> > +
> > +Example DejaGnu tests of RTL can be seen in the source tree at

(s/RTL/GIMPLE/ here as well)

> > +@file{gcc/testsuite/gcc.dg/gimplefe-*.c}.
> > +
> > +The @code{__GIMPLE} parser is integrated with the C tokenizer and
> > +preprocessor, so it should be possible to use macros to build out
> > +test coverage.
> 
> Can you add a sentence "A dump modifier -gimple exists to make tree
> dumps
> look more closely to valid GIMPLE input."  or something along this
> line?

I wrote:

+Use the dump modifier @code{-gimple} (e.g. @option{-fdump-tree-all-gimple})
+to make tree dumps more closely follow the format accepted by the GIMPLE
+parser.


> Ok with these changes (and thanks for finding a proper place for some
> docs)

Thanks; committed to trunk as r244977.

[...snip...]

Reply via email to