This directory contains scripts that are used by the regression
tester, <http://gcc.gnu.org/regtest/>

The primary script is 'btest-gcc.sh'.  This is the script that is run
to actually test the compiler.

'objs-gcc.sh' takes a combined tree and builds (but does not test) the
tools required for 'btest-gcc.sh'.  It is run periodically to update
the tools.  This script is followed by running 'btest-gcc.sh' using
the newly-build tools to check that they will not cause regressions.

'site.exp' is what $DEJAGNU points to when the regression tester runs
these scripts.

'GCC_Regression_Tester.wdgt' is a Dashboard widget that displays the
current state of the tester using Javascript.  You can use it without
needing Dashboard by pointing your web browser at
'GCC_Regression_Tester.wdgt/widget.html', if your browser supports
and permits it.

Note that any changes made here need to be approved by the regression
tester's maintainer (see MAINTAINERS).  The changes will be used on
the tester's next run, so `experimental' changes are very strongly
discouraged :-).
