| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 1 | |
| Andrey Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 2 | README for the LLVM* OpenMP* Runtime Library |
| 3 | ============================================ |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 4 | |
| 5 | How to Build Documentation |
| 6 | ========================== |
| 7 | |
| 8 | The main documentation is in Doxygen* format, and this distribution |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 9 | should come with pre-built PDF documentation in doc/Reference.pdf. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 10 | However, an HTML version can be built by executing: |
| 11 | |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 12 | % doxygen doc/doxygen/config |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 13 | |
| Andrey Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 14 | in the runtime directory. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 15 | |
| 16 | That will produce HTML documentation in the doc/doxygen/generated |
| 17 | directory, which can be accessed by pointing a web browser at the |
| 18 | index.html file there. |
| 19 | |
| 20 | If you don't have Doxygen installed, you can download it from |
| 21 | www.doxygen.org. |
| 22 | |
| 23 | |
| Andrey Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 24 | How to Build the LLVM* OpenMP* Runtime Library |
| 25 | ============================================== |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 26 | In-tree build: |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 27 | |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 28 | $ cd where-you-want-to-live |
| 29 | Check 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 Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 34 | |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 35 | Out-of-tree build: |
| Andrey Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 36 | |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 37 | $ cd where-you-want-to-live |
| 38 | Check 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 Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 43 | |
| Jonas Hahnfeld | 2e809ac | 2017-12-27 09:15:10 +0000 | [diff] [blame] | 44 | For details about building, please look at README.rst in the parent directory. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 45 | |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 46 | Architectures Supported |
| 47 | ======================= |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 48 | * IA-32 architecture |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 49 | * 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 Ledru | cd9d374 | 2016-12-08 09:22:24 +0000 | [diff] [blame] | 55 | * MIPS and MIPS64 architecture |
| Jim Cownie | 4cc4bb4 | 2014-10-07 16:25:50 +0000 | [diff] [blame] | 56 | |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 57 | Supported RTL Build Configurations |
| 58 | ================================== |
| 59 | |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 60 | Supported Architectures: IA-32 architecture, Intel(R) 64, and |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 61 | Intel(R) Many Integrated Core Architecture |
| 62 | |
| Jim Cownie | 4cc4bb4 | 2014-10-07 16:25:50 +0000 | [diff] [blame] | 63 | ---------------------------------------------- |
| 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 Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 71 | |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 72 | (1) On IA-32 architecture and Intel(R) 64, icc/icl versions 12.x are |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 73 | supported (12.1 is recommended). |
| Jonathan Peyton | 8977618 | 2015-09-14 17:20:30 +0000 | [diff] [blame] | 74 | (2) GCC* version 4.7 is supported. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 75 | (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 Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 77 | (5) On Intel(R) Many Integrated Core Architecture, icc/icl versions 13.0 |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 78 | or later are required. |
| Jim Cownie | 4cc4bb4 | 2014-10-07 16:25:50 +0000 | [diff] [blame] | 79 | (6) Clang* version 3.3 is supported. |
| Jonathan Peyton | 924a662 | 2016-05-17 20:48:42 +0000 | [diff] [blame] | 80 | (7) Clang* currently does not offer a software-implemented 128 bit extended |
| Jim Cownie | 181b4bb | 2013-12-23 17:28:57 +0000 | [diff] [blame] | 81 | 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 Cownie | 4cc4bb4 | 2014-10-07 16:25:50 +0000 | [diff] [blame] | 87 | (8) Community contribution provided AS IS, not tested by Intel. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 88 | |
| Jonathan Peyton | 851a2af | 2015-08-27 17:19:17 +0000 | [diff] [blame] | 89 | Supported 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 Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 103 | Front-end Compilers that work with this RTL |
| 104 | =========================================== |
| 105 | |
| 106 | The following compilers are known to do compatible code generation for |
| Andrey Churbanov | 4dc2a6b | 2015-05-12 12:52:43 +0000 | [diff] [blame] | 107 | this RTL: clang (from the OpenMP development branch at |
| 108 | http://clang-omp.github.io/ ), Intel compilers, GCC. See the documentation |
| 109 | for more details. |
| Jim Cownie | 5e8470a | 2013-09-27 10:38:44 +0000 | [diff] [blame] | 110 | |
| 111 | ----------------------------------------------------------------------- |
| 112 | |
| 113 | Notices |
| 114 | ======= |
| 115 | |
| 116 | *Other names and brands may be claimed as the property of others. |