This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: gcc-3.1/criteria.html


On Fri, Apr 12, 2002 at 04:27:48PM -0700, Mark Mitchell wrote:
> 
> 
> --On Friday, April 12, 2002 04:01:58 PM -0700 Janis Johnson 
> <janis187@us.ibm.com> wrote:
> 
> >
> > Walter Landry says that FTensor has also exposed lots of template bugs,
> > and he's made it very easy for us to run its tests.  Can we add it to
> > the release criteria, not as essential but as useful?  I submitted a
> > build and test guide for it recently.
> 
> Sure.  We're now in this weird zone where we're specifying optional
> things to do, so we can more easily add things to the list...

OK, thanks.  I've checked in the following version, which is different
from the earlier one I posted only in that the resource usage information
is moved to the top and some formatting is modified.  I added an entry for
FTensor with the other applications in gcc-3.1/criteria.html.

It sure would be nice if someone familiar with building and testing
Pooma could update the Pooma build and test guide.

It would also be nice to have information in the LAPACK guide about
how to compare timing results.  I've got times for 3.0.4 and a recent
3.1 build, but have no idea which of the many many times in the output
files are worth comparing.

Janis

Index: criteria.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.1/criteria.html,v
retrieving revision 1.24
diff -u -p -r1.24 criteria.html
--- criteria.html	11 Apr 2002 20:05:28 -0000	1.24
+++ criteria.html	12 Apr 2002 23:41:41 -0000
@@ -203,6 +203,13 @@ different programming languages.</p>
     <td><a href="http://www.boost.org/boost_all.tar.gz";>boost_all.tar.gz</a></td>
     <td><a href="testing-boost.html">build and test guide</a></td>
 </tr>
+<tr><td><a href="http://superbeast.ucsd.edu/~landry/FTensor/";>FTensor</a></td>
+    <td>C++</td>
+    <td>1.1 patch 16</td>
+    <td><a href="http://www.oonumerics.org/FTensor/FTensor_gcc_integration_test.tar.gz";>
+         FTensor_gcc_integration_test.tar.gz</a></td>
+    <td><a href="testing-ftensor.html">build and test guide</a></td>
+</tr>
 <tr><td><a href="http://www.gnu.org/software/emacs/";>GNU Emacs</a></td>
     <td>C</td>
     <td>20.6</td>
--- /dev/null	Tue May 23 09:27:54 2000
+++ testing-ftensor.html	Mon Apr  8 08:48:58 2002
@@ -0,0 +1,110 @@
+<html>
+
+<head>
+<title>FTensor build and test guide</title>
+</head>
+
+<body>
+<h1>FTensor build and test guide</h1>
+
+<p>This page is a guide to running the testing and timing programs for the
+FTensor tensor class library as part of GCC integration testing.  FTensor
+does not build successfully with versions of GCC earlier than 3.1.</p>
+
+<h2>Resource usage</h2>
+
+<p>The FTensor distribution, available at
+<a href="http://www.oonumerics.org/FTensor/FTensor_gcc_integration_test.tar.gz";>
+FTensor_gcc_integration_test.tar.gz</a>, is a 176K file.  The uncompressed
+distribution comprises some 4.5 MB of source files.  Building the testing
+and timing programs adds between 20 and 32 MB of object files and executables
+to this.</p>
+
+<p>On a Pentium III laptop, the conformance tests take 7 minutes and the
+performance tests take 3 minutes.</p>
+
+<h2>Prepare</h2>
+
+<p>To prepare for a build, perform the following:</p>
+<ul>
+<li>Unpack the file:
+<ul>
+<li><code>tar zxf FTensor_gcc_integration_test.tar.gz</code>, or</li>
+<li><code>gunzip -c FTensor_gcc_integration_test.tar.gz | tar xf -</code></li>
+</ul>
+</li>
+<li>Change directory to the repository thus created:
+<ul>
+<li><code>cd FTensor--main--1.1--patch-16</code></li>
+</ul>
+</li>
+</ul>
+
+<h2>Testing</h2>
+
+<p>FTensor tests in directory <code>tests/conformance</code> exercise
+most of the package's possible operations, and the tests in directory
+<code>tests/speed</code> compare how fast the FTensor classes are
+compared to ordinary arrays.  See the file <code>tests/README</code>
+for more information about the two sets of tests.</p>
+
+<p>To build and run the subset of conformance tests meant for compiler
+testing, do:</p>
+
+<code>
+cd tests/conformance
+<br />
+make CXX=&lt;compiler&gt; CXXOPTIMIZE="&lt;flags&gt;" test_compiler
+<br />
+./test_compiler
+</code>
+
+<p>The conformance tests print out <code>PASS</code> or <code>FAIL</code>
+followed by a unique test name.  There should be no failures.</p>
+
+<p>The path to the C++ compiler is defined in <code>CXX</code> and the
+compiler optimization options are defined in <code>CXXOPTIMIZE</code>
+in the Makefile.  If you don't override them as shown above,
+<code>CXX</code> will be <code>g++</code> and <code>CXXOPTIMIZE</code>
+will be the flags that are normally used by FTensor developers and
+users.  Testing with the usual flags ensures that FTensor will work for
+its users on your platform; testing with other optimizations might
+uncover GCC bugs.</p>
+
+<p>To build and run the performance tests using the optimizations that
+are normally used for them, simply do:</p>
+
+<code>
+cd tests/speed
+./one_over_script
+</code>
+
+<p>To use different optimizations and/or a different compiler, first do:</p>
+
+<code>
+make CXX=&lt;compiler&gt; CXXOPTIMIZE="&lt;flags&gt;" one_over one_over_fast
+</code>
+
+<p>In this case when the the script <code>one_over_script</code> invokes
+make, there is nothing for make to do.</p>
+
+<p>In addition to printing timing information, <code>one_over_script</code>
+prints out <code>PASS</code> or <code>FAIL</code> for each performance test,
+followed by the unique test name.  There should be no failures.</p>
+
+<h2>Timing</h2>
+
+<p>FTensor didn't build with versions of GCC before 3.1, so it cannot
+be used for comparing performance between GCC 3.1 and earlier versions.</p>
+
+<h2>Cleanup</h2>
+
+<p>Cleanup (to prepare the directory for a fresh run, e.g.
+with another version of the compiler), is done as follows:</p>
+
+<pre><code>(cd tests/conformance; make clean)
+(cd tests/speed; make clean)
+</code></pre>
+
+</body>
+</html>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]