forked from OSchip/llvm-project
Update Reference.pdf files.
This updates the Reference.pdf files to say LLVM OpenMP Runtime Library and also updates the build documentation to show how to build with CMake. llvm-svn: 248407
This commit is contained in:
parent
4c36e2f47e
commit
1acc2dbf6e
File diff suppressed because it is too large
Load Diff
|
@ -26,69 +26,32 @@ The aim here is to explain the interface from the compiler to the runtime.
|
||||||
The overall design is described, and each function in the interface
|
The overall design is described, and each function in the interface
|
||||||
has its own description. (At least, that's the ambition, we may not be there yet).
|
has its own description. (At least, that's the ambition, we may not be there yet).
|
||||||
|
|
||||||
@section sec_building Building the Runtime
|
@section sec_building Quickly Building the Runtime
|
||||||
For the impatient, we cover building the runtime as the first topic here.
|
For the impatient, we cover building the runtime as the first topic here.
|
||||||
|
|
||||||
A top-level Makefile is provided that attempts to derive a suitable
|
CMake is used to build the OpenMP runtime. For details and a full list of options for the CMake build system,
|
||||||
configuration for the most commonly used environments. To see the
|
see <tt>Build_With_CMake.txt</tt> inside the <tt>runtime/</tt> subdirectory. These
|
||||||
default settings, type:
|
instructions will provide the most typical build.
|
||||||
|
|
||||||
|
In-LLVM-tree build:.
|
||||||
@code
|
@code
|
||||||
% make info
|
$ cd where-you-want-to-live
|
||||||
|
Check out openmp into llvm/projects
|
||||||
|
$ cd where-you-want-to-build
|
||||||
|
$ mkdir build && cd build
|
||||||
|
$ cmake path/to/llvm -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler>
|
||||||
|
$ make omp
|
||||||
@endcode
|
@endcode
|
||||||
|
Out-of-LLVM-tree build:
|
||||||
You can change the Makefile's behavior with the following options:
|
|
||||||
|
|
||||||
- <b>omp_root</b>: The path to the top-level directory containing the top-level
|
|
||||||
Makefile. By default, this will take on the value of the
|
|
||||||
current working directory.
|
|
||||||
|
|
||||||
- <b>omp_os</b>: Operating system. By default, the build will attempt to
|
|
||||||
detect this. Currently supports "linux", "macos", and
|
|
||||||
"windows".
|
|
||||||
|
|
||||||
- <b>arch</b>: Architecture. By default, the build will attempt to
|
|
||||||
detect this if not specified by the user. Currently
|
|
||||||
supported values are
|
|
||||||
- "32" for IA-32 architecture
|
|
||||||
- "32e" for Intel® 64 architecture
|
|
||||||
- "mic" for Intel® Many Integrated Core Architecture (
|
|
||||||
If "mic" is specified then "icc" will be used as the
|
|
||||||
compiler, and appropriate k1om binutils will be used. The
|
|
||||||
necessary packages must be installed on the build machine
|
|
||||||
for this to be possible, but an
|
|
||||||
Intel® Xeon Phi™
|
|
||||||
coprocessor is not required to build the library).
|
|
||||||
|
|
||||||
- <b>compiler</b>: Which compiler to use for the build. Defaults to "icc"
|
|
||||||
or "icl" depending on the value of omp_os. Also supports
|
|
||||||
"gcc" when omp_os is "linux" for gcc\other versions
|
|
||||||
4.6.2 and higher. For icc on OS X\other, OS X\other versions
|
|
||||||
greater than 10.6 are not supported currently. Also, icc
|
|
||||||
version 13.0 is not supported. The selected compiler should be
|
|
||||||
installed and in the user's path. The corresponding
|
|
||||||
Fortran compiler should also be in the path.
|
|
||||||
|
|
||||||
- <b>mode</b>: Library mode: default is "release". Also supports "debug".
|
|
||||||
|
|
||||||
To use any of the options above, simple add <option_name>=<value>. For
|
|
||||||
example, if you want to build with gcc instead of icc, type:
|
|
||||||
@code
|
@code
|
||||||
% make compiler=gcc
|
$ cd where-you-want-to-live
|
||||||
|
Check out openmp
|
||||||
|
$ cd where-you-want-to-live/openmp/runtime
|
||||||
|
$ mkdir build && cd build
|
||||||
|
$ cmake path/to/openmp -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler>
|
||||||
|
$ make
|
||||||
@endcode
|
@endcode
|
||||||
|
|
||||||
Underneath the hood of the top-level Makefile, the runtime is built by
|
|
||||||
a perl script that in turn drives a detailed runtime system make. The
|
|
||||||
script can be found at <tt>tools/build.pl</tt>, and will print
|
|
||||||
information about all its flags and controls if invoked as
|
|
||||||
@code
|
|
||||||
% tools/build.pl --help
|
|
||||||
@endcode
|
|
||||||
|
|
||||||
If invoked with no arguments, it will try to build a set of libraries
|
|
||||||
that are appropriate for the machine on which the build is happening.
|
|
||||||
There are many options for building out of tree, and configuring library
|
|
||||||
features that can also be used. Consult the <tt>--help</tt> output for details.
|
|
||||||
|
|
||||||
@section sec_supported Supported RTL Build Configurations
|
@section sec_supported Supported RTL Build Configurations
|
||||||
|
|
||||||
The architectures supported are IA-32 architecture, Intel® 64, and
|
The architectures supported are IA-32 architecture, Intel® 64, and
|
||||||
|
@ -96,17 +59,39 @@ Intel® Many Integrated Core Architecture. The build configurations
|
||||||
supported are shown in the table below.
|
supported are shown in the table below.
|
||||||
|
|
||||||
<table border=1>
|
<table border=1>
|
||||||
<tr><th> <th>icc/icl<th>gcc
|
<tr><th> <th>icc/icl<th>gcc<th>clang
|
||||||
<tr><td>Linux\other OS<td>Yes(1,5)<td>Yes(2,4)
|
<tr><td>Linux\other OS<td>Yes(1,5)<td>Yes(2,4)<td>Yes(4,6,7)
|
||||||
<tr><td>OS X\other<td>Yes(1,3,4)<td>No
|
<tr><td>FreeBSD\other<td>Yes(1,5)<td>Yes(2,4)<td>Yes(4,6,7,8)
|
||||||
<tr><td>Windows\other OS<td>Yes(1,4)<td>No
|
<tr><td>OS X\other<td>Yes(1,3,4)<td>No<td>Yes(4,6,7)
|
||||||
|
<tr><td>Windows\other OS<td>Yes(1,4)<td>No<td>No
|
||||||
</table>
|
</table>
|
||||||
(1) On IA-32 architecture and Intel® 64, icc/icl versions 12.x
|
(1) On IA-32 architecture and Intel® 64, icc/icl versions 12.x
|
||||||
are supported (12.1 is recommended).<br>
|
are supported (12.1 is recommended).<br>
|
||||||
(2) gcc version 4.6.2 is supported.<br>
|
(2) gcc version 4.7 is supported.<br>
|
||||||
(3) For icc on OS X\other, OS X\other version 10.5.8 is supported.<br>
|
(3) For icc on OS X\other, OS X\other version 10.5.8 is supported.<br>
|
||||||
(4) Intel® Many Integrated Core Architecture not supported.<br>
|
(4) Intel® Many Integrated Core Architecture not supported.<br>
|
||||||
(5) On Intel® Many Integrated Core Architecture, icc/icl versions 13.0 or later are required.
|
(5) On Intel® Many Integrated Core Architecture, icc/icl versions 13.0 or later are required.<br>
|
||||||
|
(6) Clang\other version 3.3 is supported.<br>
|
||||||
|
(7) Clang\other currently does not offer a software-implemented 128 bit extended
|
||||||
|
precision type. Thus, all entry points reliant on this type are removed
|
||||||
|
from the library and cannot be called in the user program. The following
|
||||||
|
functions are not available:
|
||||||
|
@code
|
||||||
|
__kmpc_atomic_cmplx16_*
|
||||||
|
__kmpc_atomic_float16_*
|
||||||
|
__kmpc_atomic_*_fp
|
||||||
|
@endcode
|
||||||
|
(8) Community contribution provided AS IS, not tested by Intel.
|
||||||
|
|
||||||
|
Supported Architectures: IBM(R) Power 7 and Power 8
|
||||||
|
<table border=1>
|
||||||
|
<tr><th> <th>gcc<th>clang
|
||||||
|
<tr><td>Linux\other OS<td>Yes(1,2)<td>Yes(3,4)
|
||||||
|
</table>
|
||||||
|
(1) On Power 7, gcc version 4.8.2 is supported.<br>
|
||||||
|
(2) On Power 8, gcc version 4.8.2 is supported.<br>
|
||||||
|
(3) On Power 7, clang version 3.7 is supported.<br>
|
||||||
|
(4) On Power 8, clang version 3.7 is supported.<br>
|
||||||
|
|
||||||
@section sec_frontend Front-end Compilers that work with this RTL
|
@section sec_frontend Front-end Compilers that work with this RTL
|
||||||
|
|
||||||
|
|
14484
openmp/www/Reference.pdf
14484
openmp/www/Reference.pdf
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue