[Dexter] add an optnone attribute debug experience test for loops.
[llvm-project.git] / openmp / www / index.html
blob2050e3913baf9397af50b639d12c7cf330fd7539
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
4 <html>
5 <head>
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7 <title>OpenMP* : Support for the OpenMP language</title>
8 <link type="text/css" rel="stylesheet" href="menu.css">
9 <link type="text/css" rel="stylesheet" href="content.css">
10 </head>
12 <body>
13 <div id="menu">
14 <div>
15 <a href="https://llvm.org/">LLVM Home</a>
16 </div>
18 <div class="submenu">
19 <label>OpenMP Info</label>
20 <a href="/index.html">About</a>
21 </div>
23 <div class="submenu">
24 <label>Quick Links</label>
25 <a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
26 <a href="https://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
27 <a href="https://bugs.llvm.org/">Bug Reports</a>
28 <a href="https://github.com/llvm/llvm-project/tree/master/openmp">Browse Sources</a>
29 </div>
30 </div>
32 <div id="content">
33 <!--*********************************************************************-->
34 <h1>OpenMP&reg;: Support for the OpenMP language</h1>
35 <!--*********************************************************************-->
37 <p>The OpenMP subproject of LLVM contains the
38 components required to build an executable OpenMP program that are
39 outside the compiler itself.
40 </p>
42 <p>Here you can find :-
43 <ul>
44 <li>
45 the code for the runtime library against which
46 code compiled by <tt>clang -fopenmp</tt> must be linked before it
47 can run.
48 </li>
49 <li>
50 the library that supports offload to target devices (in
51 "libomptarget")
52 </li>
53 </ul>
54 </p>
56 <p>Support for the parts of the OpenMP 4.0 (and later) language that are not
57 associated with the "target" constructs are contained in the
58 "runtime" directory. Support for offloading computation via the
59 "target" directive is in the separate "libomptarget" directory.
60 </p>
62 <p>All of the code here is <a
63 href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
64 under the MIT license and the UIUC License (a BSD-like license).
65 The LICENSE.txt file at the top of the OpenMP project contains
66 the license text and associated patent grants.
67 </p>
69 <!--=====================================================================-->
70 <h2 id="dir-structure">Status</h2>
71 <!--=====================================================================-->
73 <p>With the release of Clang 3.8.0, OpenMP 3.1 support is enabled in
74 Clang by default, and the OpenMP runtime is therefore built as a
75 normal part of the Clang build, and distributed with the binary
76 distributions.You do not, therefore, need explicitly to check out this code, or
77 build it out of tree; a normal Clang check out and build will
78 automatically include building these runtime libraries.
79 </p>
81 <!--=====================================================================-->
82 <h2 id="goals">Features and Goals</h2>
83 <!--=====================================================================-->
85 <ul>
86 <li>Support for the <a href="https://www.openmp.org/wp-content/uploads/OpenMP3.1.pdf">OpenMP
87 3.1 standard (PDF)</a> has been achieved in the Clang 3.8.0
88 release.
89 </li>
91 <li>Support for the
92 <a href="https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf">OpenMP
93 4.0 standard (PDF)</a> and <a href="https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf">OpenMP
94 4.5 standard (PDF)</a> is now being implemented. (Some OpenMP 4.0
95 and 4.5 features are already available).
96 <li>High performance.</li>
97 <li>ABI compatibility with <a href="https://gcc.gnu.org">Gcc</a> and
98 <a href="https://software.intel.com/en-us/compilers">Intel's
99 existing OpenMP compilers.</a>
100 We currently have binary compatibility with OpenMP
101 3.1 code compiled by gcc 4.9, however we do not have support
102 for OpenMP 4.0 code that uses task cancellation when compiled
103 by gcc 4.9. How we will support such code remains a research issue.
104 </li>
105 </ul>
107 <!--=====================================================================-->
108 <h2 id="why">Why have the runtime code here?</h2>
109 <!--=====================================================================-->
111 <p>It makes sense to have the runtime sources in the same place
112 (and with the same license) as the compiler.
113 </p>
115 <!--=====================================================================-->
116 <h2 id="requirements">Platform Support</h2>
117 <!--=====================================================================-->
119 <p>The runtime can be built with gcc, icc or clang. However, note
120 that a runtime built with clang cannot be guaranteed to work with
121 OpenMP code compiled by the other compilers, since clang does not support
122 a 128-bit float type, and cannot therefore generate the code used
123 for reductions of that type (which may occur in user code compiled
124 by the other compilers).
125 </p>
127 <p>The OpenMP runtime is known to work on
128 <ul>
129 <li>ARM&reg;&nbsp; architecture processors</li>
130 <li>PowerPC&trade;&nbsp; processors</li>
131 <li>32 and 64 bit X86
132 processors when compiled with clang, with the Intel compiler
133 or with gcc, and also the Intel&reg;&nbsp;Xeon Phi&trade; product family, when compiled with
134 the Intel compiler.
135 </li>
136 <li>MIPS and MIPS64</li>
137 <li>RISC-V 64-bit</li>
138 </ul>
139 Ports to other architectures and operating systems are welcome.
140 </p>
142 <p>A full OS and architecture compatibility matrix is in
143 <a href="README.txt">README.txt</a>
144 </p>
147 <!--=====================================================================-->
148 <h2>Get it and get involved!</h2>
149 <!--=====================================================================-->
151 <p>First please review our
152 <a href="https://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
154 <p>To check out the code, use:</p>
156 <ul>
157 <li><code>git clone https://github.com/llvm/llvm-project.git</code></li>
158 </ul>
160 <p>In-tree build:</p>
161 <ul>
162 <li><code>cd llvm-project</code></li>
163 <li><code>mkdir build &amp;&amp; cd build</code></li>
164 <li><code>cmake ../llvm -DLLVM_ENABLE_PROJECTS=openmp -DCMAKE_C_COMPILER=&lt;C compiler&gt; -DCMAKE_CXX_COMPILER=&lt;C++ compiler&gt;</code></li>
165 <li><code>make omp</code></li>
166 </ul>
168 <p>Out-of-tree build:</p>
169 <ul>
170 <li><code>cd llvm-project</code></li>
171 <li><code>mkdir build-openmp &amp;&amp; cd build-openmp</code></li>
172 <li><code>cmake ../openmp -DCMAKE_C_COMPILER=&lt;C compiler&gt; -DCMAKE_CXX_COMPILER=&lt;C++ compiler&gt;</code></li>
173 <li><code>make</code></li>
174 </ul>
176 <p>Full details of how to build are in the
177 <a href="README.txt">README.txt</a> and README.rst in the source code repository.
178 </p>
180 <!--=====================================================================-->
181 <h3>Notes</h3>
182 <!--=====================================================================-->
186 </p>
188 <p>Send discussions to the
189 (<a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
192 <!--=====================================================================-->
193 <h2>Design Documents</h2>
194 <!--=====================================================================-->
196 <ul>
197 <li><a href="Reference.pdf">Runtime design (PDF)</a></li>
198 </ul>
200 <!--=====================================================================-->
201 <h2>Copyright notices</h2>
202 <!--=====================================================================-->
203 <ul>
204 <li>
205 The OpenMP name and the OpenMP logo are registered trademarks of the
206 OpenMP Architecture Review Board.
207 </li>
208 <li>
209 Intel is a trademark of Intel Corporation in the U.S. and/or other
210 countries.
211 </li>
212 <li>
213 PowerPC is a trademark of IBM Corporation in the U.S. and/or other
214 countries.
215 </li>
216 <li>
217 ARM is a trademark of ARM Corporation in the U.S. and/or
218 other countries.
219 </li>
220 <li>
221 MIPS is a trademark of MIPS Computer Systems in the U.S. and/or
222 other countries.
223 </li>
224 </ul>
225 </div>
226 </body>
227 </html>