- <p>The Programs directory is subdivided into several smaller subdirectories:
- </p>
-
- <ul>
- <li>Programs/SingleSource
- <p>The SingleSource directory contains test programs that are only a
- single source file in size. These are usually small benchmark programs
- or small programs that calculate a particular value. Several such
- programs are grouped together in each directory.</p></li>
-
- <li>Programs/MultiSource
- <p>The MultiSource directory contains subdirectories which contain
- entire programs with multiple source files. Large benchmarks and whole
- applications go here.</p></li>
-
- <li>Programs/External
- <p>The External directory contains Makefiles for building code that is
- external to (i.e. not distributed with) LLVM. The most prominent member
- of this directory is the SPEC 2000 benchmark suite. The presence and
- location of these external programs is configured by the LLVM
- <tt>configure</tt> script.</p></li>
-
- </ul></li>
-
- <li>QMTest
- <p>This directory contains the QMTest information files. Inside this
- directory are QMTest administration files and the Python code that
- implements the LLVM test and database classes.</p>
+<ul>
+<li><tt>llvm/test/Features</tt>
+<p>This directory contains sample codes that test various features of the
+LLVM language. These pieces of sample code are run through various
+assembler, disassembler, and optimizer passes.</p>
+</li>
+
+<li><tt>llvm/test/Regression</tt>
+<p>This directory contains regression tests for LLVM. When a bug is found
+in LLVM, a regression test containing just enough code to reproduce the
+problem should be written and placed somewhere underneath this directory.
+In most cases, this will be a small piece of LLVM assembly language code,
+often distilled from an actual application or benchmark.</p>
+</li>
+
+<li><tt>llvm-test</tt>
+<p>The <tt>llvm-test</tt> CVS module contains programs that can be compiled
+with LLVM and executed. These programs are compiled using the native compiler
+and various LLVM backends. The output from the program compiled with the
+native compiler is assumed correct; the results from the other programs are
+compared to the native program output and pass if they match. </p>
+
+<p>In addition for testing correctness, the <tt>llvm-test</tt> directory also
+performs timing tests of various LLVM optimizations. It also records
+compilation times for the compilers and the JIT. This information can be
+used to compare the effectiveness of LLVM's optimizations and code
+generation.</p></li>
+
+<li><tt>llvm-test/SingleSource</tt>
+<p>The SingleSource directory contains test programs that are only a single
+source file in size. These are usually small benchmark programs or small
+programs that calculate a particular value. Several such programs are grouped
+together in each directory.</p></li>
+
+<li><tt>llvm-test/MultiSource</tt>
+<p>The MultiSource directory contains subdirectories which contain entire
+programs with multiple source files. Large benchmarks and whole applications
+go here.</p></li>
+
+<li><tt>llvm-test/External</tt>
+<p>The External directory contains Makefiles for building code that is
+external to (i.e. not distributed with) LLVM. The most prominent member
+of this directory is the SPEC 2000 benchmark suite. The presence and
+location of these external programs is configured by the llvm-test
+<tt>configure</tt> script.</p></li>
+
+<li><tt>llvm/test/QMTest</tt>
+<p>This directory contains the QMTest information files. Inside this
+directory are QMTest administration files and the Python code that
+implements the LLVM test and database classes.</p>