[WebAssembly] Fix asan issue from https://reviews.llvm.org/D121349
[llvm-project.git] / flang / docs / FortranLLVMTestSuite.md
blob46a8fe4f634245bfe7aa733fac25ab7b51f65ce2
1 # Fortran Tests in the LLVM Test Suite
3 ```eval_rst
4 .. contents::
5    :local:
6 ```
8 The [LLVM Test Suite](https://github.com/llvm/llvm-test-suite) is a
9 separate git repo from the main LLVM project. We recommend that
10 first-time users read through [LLVM Test Suite
11 Guide](https://llvm.org/docs/TestSuiteGuide.html) which describes the
12 organizational structure of the test suite and how to run it.
14 Although the Flang driver is unable to generate code at this time, we
15 are neverthelesss incrementally adding Fortran tests into the LLVM
16 Test Suite. We are currently testing against GFortran while we make
17 progress towards completing the new Flang driver with full
18 code-generation capabilities.
20 ## Running the LLVM test-suite with Fortran
22 Fortran support can be enabled by setting the following CMake variables:
23 ```
24 cmake -G "Ninja" -DCMAKE_C_COMPILER=<path to C compiler> \
25     -DCMAKE_CXX_COMPILER=<path to C++ compiler> \
26     -DCMAKE_Fortran_COMPILER=<path to Fortran compiler> \
27     -DTEST_SUITE_COLLECT_CODE_SIZE:STRING=OFF \
28     -DTEST_SUITE_SUBDIRS:STRING="Fortran" \
29     -DTEST_SUITE_FORTRAN:STRING=ON ..
30 ```
32 This will configure the test-suite to run only the Fortran tests which
33 are found in the Fortran subdirectory. To run the C/C++ tests
34 alongside the Fortran tests omit the `-DTEST_SUITE_SUBDIRS` CMake
35 variable.
38 ## Running the SPEC CPU 2017
40 We recently added CMake hooks into the LLVM Test Suite to support
41 Fortran tests from [SPEC CPU 2017](https://www.spec.org/cpu2017/). We
42 strongly encourage the use of the CMake Ninja (1.10 or later) generator
43 due to better support for Fortran module dependency detection. Some of
44 the SPEC CPU 2017 Fortran tests, those that are derived from climate
45 codes, require support for little-endian/big-endian byte swapping
46 capabilities which we automatically detect at CMake configuration
47 time.  Note that a copy of SPEC CPU 2017 must be purchased by your
48 home institution and is not provided by LLVM.
51 Here is an example of how to build SPEC CPU 2017 with GCC
53 ```
54 cmake -G "Ninja" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \
55     -DCMAKE_Fortran_COMPILER=gfortran \
56     -DTEST_SUITE_COLLECT_CODE_SIZE:STRING=OFF \
57     -DTEST_SUITE_SUBDIRS:STRING="External/SPEC" \
58     -DTEST_SUITE_FORTRAN:STRING=ON \
59     -DTEST_SUITE_SPEC2017_ROOT=<path to SPEC directory>  ..
60 ```