blob: ab1963416a74a059d05d31126d65460b44636b6e [file] [log] [blame]
Jim Cownie5e8470a2013-09-27 10:38:44 +00001
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +00002 README for the LLVM* OpenMP* Runtime Library
3 ============================================
Jim Cownie5e8470a2013-09-27 10:38:44 +00004
5How to Build Documentation
6==========================
7
8The main documentation is in Doxygen* format, and this distribution
Jonathan Peyton924a6622016-05-17 20:48:42 +00009should come with pre-built PDF documentation in doc/Reference.pdf.
Jim Cownie5e8470a2013-09-27 10:38:44 +000010However, an HTML version can be built by executing:
11
Jonathan Peyton924a6622016-05-17 20:48:42 +000012% doxygen doc/doxygen/config
Jim Cownie5e8470a2013-09-27 10:38:44 +000013
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +000014in the runtime directory.
Jim Cownie5e8470a2013-09-27 10:38:44 +000015
16That will produce HTML documentation in the doc/doxygen/generated
17directory, which can be accessed by pointing a web browser at the
18index.html file there.
19
20If you don't have Doxygen installed, you can download it from
21www.doxygen.org.
22
23
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +000024How to Build the LLVM* OpenMP* Runtime Library
25==============================================
Jonathan Peyton89776182015-09-14 17:20:30 +000026In-tree build:
Jim Cownie5e8470a2013-09-27 10:38:44 +000027
Jonathan Peyton89776182015-09-14 17:20:30 +000028$ cd where-you-want-to-live
29Check out openmp into llvm/projects
30$ cd where-you-want-to-build
31$ mkdir build && cd build
32$ cmake path/to/llvm -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler>
33$ make omp
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +000034
Jonathan Peyton89776182015-09-14 17:20:30 +000035Out-of-tree build:
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +000036
Jonathan Peyton89776182015-09-14 17:20:30 +000037$ cd where-you-want-to-live
38Check out openmp
39$ cd where-you-want-to-live/openmp/runtime
40$ mkdir build && cd build
41$ cmake path/to/openmp -DCMAKE_C_COMPILER=<C compiler> -DCMAKE_CXX_COMPILER=<C++ compiler>
42$ make
Jim Cownie5e8470a2013-09-27 10:38:44 +000043
Jonas Hahnfeld2e809ac2017-12-27 09:15:10 +000044For details about building, please look at README.rst in the parent directory.
Jim Cownie5e8470a2013-09-27 10:38:44 +000045
Jonathan Peyton89776182015-09-14 17:20:30 +000046Architectures Supported
47=======================
Jonathan Peyton924a6622016-05-17 20:48:42 +000048* IA-32 architecture
Jonathan Peyton89776182015-09-14 17:20:30 +000049* Intel(R) 64 architecture
50* Intel(R) Many Integrated Core Architecture
51* ARM* architecture
52* Aarch64 (64-bit ARM) architecture
53* IBM(R) Power architecture (big endian)
54* IBM(R) Power architecture (little endian)
Sylvestre Ledrucd9d3742016-12-08 09:22:24 +000055* MIPS and MIPS64 architecture
Jim Cownie4cc4bb42014-10-07 16:25:50 +000056
Jim Cownie5e8470a2013-09-27 10:38:44 +000057Supported RTL Build Configurations
58==================================
59
Jonathan Peyton924a6622016-05-17 20:48:42 +000060Supported Architectures: IA-32 architecture, Intel(R) 64, and
Jim Cownie5e8470a2013-09-27 10:38:44 +000061Intel(R) Many Integrated Core Architecture
62
Jim Cownie4cc4bb42014-10-07 16:25:50 +000063 ----------------------------------------------
64 | icc/icl | gcc | clang |
65--------------|---------------|----------------------------|
66| Linux* OS | Yes(1,5) | Yes(2,4) | Yes(4,6,7) |
67| FreeBSD* | No | No | Yes(4,6,7,8) |
68| OS X* | Yes(1,3,4) | No | Yes(4,6,7) |
69| Windows* OS | Yes(1,4) | No | No |
70------------------------------------------------------------
Jim Cownie5e8470a2013-09-27 10:38:44 +000071
Jonathan Peyton924a6622016-05-17 20:48:42 +000072(1) On IA-32 architecture and Intel(R) 64, icc/icl versions 12.x are
Jim Cownie5e8470a2013-09-27 10:38:44 +000073 supported (12.1 is recommended).
Jonathan Peyton89776182015-09-14 17:20:30 +000074(2) GCC* version 4.7 is supported.
Jim Cownie5e8470a2013-09-27 10:38:44 +000075(3) For icc on OS X*, OS X* version 10.5.8 is supported.
76(4) Intel(R) Many Integrated Core Architecture not supported.
Jonathan Peyton924a6622016-05-17 20:48:42 +000077(5) On Intel(R) Many Integrated Core Architecture, icc/icl versions 13.0
Jim Cownie5e8470a2013-09-27 10:38:44 +000078 or later are required.
Jim Cownie4cc4bb42014-10-07 16:25:50 +000079(6) Clang* version 3.3 is supported.
Jonathan Peyton924a6622016-05-17 20:48:42 +000080(7) Clang* currently does not offer a software-implemented 128 bit extended
Jim Cownie181b4bb2013-12-23 17:28:57 +000081 precision type. Thus, all entry points reliant on this type are removed
82 from the library and cannot be called in the user program. The following
83 functions are not available:
84 __kmpc_atomic_cmplx16_*
85 __kmpc_atomic_float16_*
86 __kmpc_atomic_*_fp
Jim Cownie4cc4bb42014-10-07 16:25:50 +000087(8) Community contribution provided AS IS, not tested by Intel.
Jim Cownie5e8470a2013-09-27 10:38:44 +000088
Jonathan Peyton851a2af2015-08-27 17:19:17 +000089Supported Architectures: IBM(R) Power 7 and Power 8
90
91 -----------------------------
92 | gcc | clang |
93--------------|------------|--------------|
94| Linux* OS | Yes(1,2) | Yes(3,4) |
95-------------------------------------------
96
97(1) On Power 7, gcc version 4.8.2 is supported.
98(2) On Power 8, gcc version 4.8.2 is supported.
99(3) On Power 7, clang version 3.7 is supported.
100(4) On Power 8, clang version 3.7 is supported.
101
102
Jim Cownie5e8470a2013-09-27 10:38:44 +0000103Front-end Compilers that work with this RTL
104===========================================
105
106The following compilers are known to do compatible code generation for
Andrey Churbanov4dc2a6b2015-05-12 12:52:43 +0000107this RTL: clang (from the OpenMP development branch at
108http://clang-omp.github.io/ ), Intel compilers, GCC. See the documentation
109for more details.
Jim Cownie5e8470a2013-09-27 10:38:44 +0000110
111-----------------------------------------------------------------------
112
113Notices
114=======
115
116*Other names and brands may be claimed as the property of others.