From 0f7d9dc391f6ea9b726417367595ccfa45c7ed9f Mon Sep 17 00:00:00 2001
From: Andrew Trick Welcome to LLVM! In order to get started, you first need to know some
basic information. First, LLVM comes in two pieces. The first piece is the LLVM suite. This
-contains all of the tools, libraries, and header files needed to use the low
-level virtual machine. It contains an assembler, disassembler, bitcode
-analyzer and bitcode optimizer. It also contains a test suite that can be
-used to test the LLVM tools and the GCC front end. First, LLVM comes in three pieces. The first piece is the LLVM
+suite. This contains all of the tools, libraries, and header files
+needed to use the low level virtual machine. It contains an
+assembler, disassembler, bitcode analyzer and bitcode optimizer. It
+also contains basic regression tests that can be used to test the LLVM
+tools and the GCC front end. The second piece is the GCC front end. This component provides a version of
GCC that compiles C and C++ code into LLVM bitcode. Currently, the GCC front
@@ -93,7 +94,7 @@ compiled into LLVM bitcode, a program can be manipulated with the LLVM tools
from the LLVM suite.
-There is a third, optional piece called llvm-test. It is a suite of programs
+There is a third, optional piece called Test Suite. It is a suite of programs
with a testing harness that can be used to further test LLVM's functionality
and performance.
Optionally, specify for directory the full pathname of the
C/C++ front end installation to use with this LLVM configuration. If
not specified, the PATH will be searched. This is only needed if you
- want to run the testsuite or do some special kinds of LLVM builds.
Enable the SPEC2000 benchmarks for testing. The SPEC2000 benchmarks should be available in @@ -684,7 +686,7 @@ compressed with the gzip program.
% cd llvm/projects -% svn co http://llvm.org/svn/llvm-project/test-suite/trunk llvm-test +% svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
Before configuring and compiling the LLVM suite (or if you want to use just the LLVM GCC front end) you can optionally extract the front end from the binary distribution. -It is used for running the llvm-test testsuite and for compiling C/C++ programs. Note that +It is used for running the LLVM test-suite and for compiling C/C++ programs. Note that you can optionally build llvm-gcc yourself after building the main LLVM repository.
@@ -795,9 +797,9 @@ to your PATH environment variable. For example, if you uncompressed thIf you now want to build LLVM from source, when you configure LLVM, it will automatically detect llvm-gcc's presence (if it is in your path) enabling its -use in llvm-test. Note that you can always build or install llvm-gcc at any +use in test-suite. Note that you can always build or install llvm-gcc at any point after building the main LLVM repository: just reconfigure llvm and -llvm-test will pick it up. +test-suite will pick it up.
As a convenience for Windows users, the front end binaries for MinGW/x86 include @@ -1348,7 +1350,7 @@ end to compile.
- +This is not a directory in the normal llvm module; it is a separate Subversion @@ -1408,7 +1410,7 @@ information is in the Command Guide.
In addition for testing correctness, the llvm-test directory also +
In addition for testing correctness, the test-suite 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.
-llvm-test tests are divided into three types of tests: MultiSource, +
test-suite tests are divided into three types of tests: MultiSource, SingleSource, and External.
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.
The MultiSource directory contains subdirectories which contain entire programs with multiple source files. Large benchmarks and whole applications go here.
The External directory contains Makefiles for building code that is external to (i.e., not distributed with) LLVM. The most prominent members of this directory are the SPEC 95 and SPEC 2000 benchmark suites. The External directory does not contain these actual tests, but only the Makefiles that know how to properly compile these programs from somewhere else. The presence and -location of these external programs is configured by the llvm-test +location of these external programs is configured by the test-suite configure script.
Following this, you can set up a test and a report that collects these and -formats them for easy viewing. This consists of two files, an +formats them for easy viewing. This consists of two files, a "test-suite/TEST.XXX.Makefile" fragment (where XXX is the name of your -test) and an "llvm-test/TEST.XXX.report" file that indicates how to +test) and a "test-suite/TEST.XXX.report" file that indicates how to format the output into a table. There are many example reports of various levels of sophistication included with the test suite, and the framework is very general.