source: general/prog/llvm.xml@ 9a599135

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 9a599135 was 9a599135, checked in by Pierre Labastie <pierre.labastie@…>, 19 months ago

Update to llvm-15.0.1

  • Property mode set to 100644
File size: 57.3 KB
RevLine 
[7b74537e]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[563e0d6]7 <!ENTITY llvm-url "https://github.com/llvm/llvm-project/releases/download/llvmorg-&llvm-version;">
8
9 <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
[abdc2e6]10 <!ENTITY llvm-download-ftp " ">
[9a599135]11 <!ENTITY llvm-md5sum "f517bb2708fe68907bd48642c4fac5fe">
12 <!ENTITY llvm-size "51 MB">
13 <!ENTITY llvm-buildsize "3.8 GB (922 MB installed, with documentation, add 18.3 GB for tests)">
14 <!ENTITY llvm-time "14 SBU (on 4 CPU cores, with documentation, add 10 SBU for tests)">
[a6221fd]15
[81210e4]16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
[9a599135]17 <!ENTITY clang-md5sum "abb7f1286b084b7c149fd83c7b1d8564">
[24b16275]18 <!ENTITY clang-size "18 MB">
[a6221fd]19
[563e0d6]20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
[9a599135]21 <!ENTITY compiler-rt-md5sum "6dd59ad1f511915e4d70872c91014ddc">
22 <!ENTITY compiler-rt-size "2.2 MB">
23
24 <!ENTITY cmake-llvm-download-http "&llvm-url;/cmake-&llvm-version;.src.tar.xz">
25 <!ENTITY cmake-llvm-md5sum "8b768b6128baf4e6797ae54a10bc0ed2">
26 <!ENTITY cmake-llvm-size "6.8 KB">
[7b74537e]27]>
28
[abdc2e6]29<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]30 <?dbhtml filename="llvm.html" ?>
31
32 <sect1info>
33 <date>$Date$</date>
34 </sect1info>
35
36 <title>LLVM-&llvm-version;</title>
37
38 <indexterm zone="llvm">
39 <primary sortas="a-LLVM">LLVM</primary>
40 </indexterm>
41
42 <sect2 role="package">
43 <title>Introduction to LLVM</title>
44
[abdc2e6]45 <para>
[a6221fd]46 The <application>LLVM</application> package contains a collection of
47 modular and reusable compiler and toolchain technologies. The Low Level
48 Virtual Machine (LLVM) Core libraries provide a modern source and
49 target-independent optimizer, along with code generation support for many
50 popular CPUs (as well as some less common ones!). These libraries are
51 built around a well specified code representation known as the LLVM
52 intermediate representation ("LLVM IR").
[abdc2e6]53 </para>
[f36bebcd]54
[abdc2e6]55 <para>
[74762a5]56 <application>Clang</application> provides new C, C++, Objective C
57 and Objective C++ front-ends for <application>LLVM</application> and is
58 required by some desktop packages such as <application>firefox</application>
59 and for <application>rust</application> if that is built using the system
60 <application>LLVM</application>.
61 </para>
62
63 <para>
64 The <application>Compiler RT</application> package provides
65 runtime sanitizer and profiling libraries for developers who use
66 <application>Clang</application> and <application>LLVM</application>.
[abdc2e6]67 </para>
[7b74537e]68
[ecc2386]69 &lfs112_checked;
[7b74537e]70
71 <bridgehead renderas="sect3">Package Information</bridgehead>
72 <itemizedlist spacing="compact">
73 <listitem>
[abdc2e6]74 <para>
75 Download (HTTP): <ulink url="&llvm-download-http;"/>
76 </para>
[7b74537e]77 </listitem>
78 <listitem>
[abdc2e6]79 <para>
80 Download (FTP): <ulink url="&llvm-download-ftp;"/>
81 </para>
[7b74537e]82 </listitem>
83 <listitem>
[abdc2e6]84 <para>
85 Download MD5 sum: &llvm-md5sum;
86 </para>
[7b74537e]87 </listitem>
88 <listitem>
[abdc2e6]89 <para>
90 Download size: &llvm-size;
91 </para>
[7b74537e]92 </listitem>
93 <listitem>
[abdc2e6]94 <para>
95 Estimated disk space required: &llvm-buildsize;
96 </para>
[7b74537e]97 </listitem>
98 <listitem>
[abdc2e6]99 <para>
100 Estimated build time: &llvm-time;
101 </para>
[7b74537e]102 </listitem>
103 </itemizedlist>
104
[9a599135]105 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
106 <bridgehead role="required" renderas="sect4">Cmake modules for LLVM</bridgehead>
107 <itemizedlist spacing="compact">
108 <listitem>
109 <para>
110 Download: <ulink url="&cmake-llvm-download-http;"/>
111 </para>
112 </listitem>
113 <listitem>
114 <para>
115 Download MD5 sum: &cmake-llvm-md5sum;
116 </para>
117 </listitem>
118 <listitem>
119 <para>
120 Download size: &cmake-llvm-size;
121 </para>
122 </listitem>
123 </itemizedlist>
124
[74762a5]125 <bridgehead renderas="sect3">Recommended Download</bridgehead>
126 <bridgehead role="recommended" renderas="sect4">Clang</bridgehead>
[70251fc]127 <itemizedlist spacing="compact">
128 <listitem>
129 <para>
130 Download: <ulink url="&clang-download-http;"/>
131 </para>
132 </listitem>
133 <listitem>
134 <para>
135 Download MD5 sum: &clang-md5sum;
136 </para>
137 </listitem>
138 <listitem>
139 <para>
140 Download size: &clang-size;
141 </para>
142 </listitem>
143 </itemizedlist>
144
[74762a5]145 <bridgehead renderas="sect3">Optional Download</bridgehead>
146 <bridgehead role="optional" renderas="sect4">Compiler RT</bridgehead>
[70251fc]147 <itemizedlist spacing="compact">
148 <listitem>
149 <para>
150 Download: <ulink url="&compiler-rt-download-http;"/>
151 </para>
152 </listitem>
153 <listitem>
154 <para>
155 Download MD5 sum: &compiler-rt-md5sum;
156 </para>
157 </listitem>
158 <listitem>
159 <para>
160 Download size: &compiler-rt-size;
161 </para>
162 </listitem>
163 </itemizedlist>
[9a599135]164 <!-- not needed for 15.0.1
[b94b5b5]165 <itemizedlist spacing="compact">
[a6d167b9]166 <listitem>
167 <para>
168 Optional patch:
[8859e30]169 <ulink url="&patch-root;/compiler-rt-&llvm-version;-glibc_2_36-1.patch"/>
[a6d167b9]170 (required if using compiler-rt)
171 </para>
172 </listitem>
173 </itemizedlist>
[9a599135]174 -->
[0472eb0]175 <itemizedlist spacing="compact">
176 <listitem>
177 <para>
[08c7ccd]178 Patch enabling <xref linkend="gSSP"/> by default in clang:
[0472eb0]179 <ulink url="&patch-root;/clang-&llvm-version;-enable_default_ssp-1.patch"/>
180 </para>
181 </listitem>
182 </itemizedlist>
183
[7b74537e]184 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
185
[7b3f441]186 <bridgehead renderas="sect4">Required</bridgehead>
187 <para role="required">
[2ee8145]188 <xref linkend="cmake"/>
[f36bebcd]189 </para>
190
[7b74537e]191 <bridgehead renderas="sect4">Optional</bridgehead>
192 <para role="optional">
[abdc2e6]193 <xref linkend="doxygen"/>,
[2ee8145]194 <xref linkend="git"/>,
[abdc2e6]195 <xref linkend="graphviz"/>,
196 <xref linkend="libxml2"/>,
[c5e3c1c]197 <xref linkend="pygments"/>,
[a96b7ae]198 <xref linkend="rsync"/> (for tests),
[2d98031c]199 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]200 <xref linkend="valgrind"/>,
[d21c6551]201 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]202 <xref linkend="zip"/>,
[11eb3ae5]203 <ulink url="https://ocaml.org/">OCaml</ulink>,
[9a599135]204 <ulink url="https://pypi.org/project/psutil/">psutil</ulink> (for tests),
205 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>
206 and <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>
207 (for building the documentation), and
[8f62346]208 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]209 </para>
210
211 <para condition="html" role="usernotes">User Notes:
[abdc2e6]212 <ulink url="&blfs-wiki;/llvm"/>
213 </para>
[7b74537e]214 </sect2>
215
216 <sect2 role="installation">
217 <title>Installation of LLVM</title>
218
[bceef3d]219 <note>
220 <para>
[9a599135]221 Starting with version 15.0.0, an additional tarball
222 <filename>cmake-&llvm-version;.src.tar.xz</filename>
223 needs to be extracted at the same level as the
224 <filename>llvm-&llvm-version;.src.tar.xz</filename> tarball,
225 and the extracted directory needs to be renamed to
226 <filename class="directory">cmake</filename>.
[bceef3d]227 </para>
[9a599135]228
229<screen><userinput>tar xf ../cmake-&llvm-version;.src.tar.xz &amp;&amp;
230mv cmake-&llvm-version;.src ../cmake</userinput></screen>
231
[bceef3d]232 </note>
233
[abdc2e6]234 <para>
[74762a5]235 Install <application>clang</application> into
[abdc2e6]236 the source tree by running the following commands:
237 </para>
[f36bebcd]238
[74762a5]239<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[005af62c]240mv tools/clang-&llvm-version;.src tools/clang</userinput></screen>
[74762a5]241
242 <para>
243 If you have downloaded <application>compiler-rt</application>,
244 install it into the source tree by running the following commands:
245 </para>
[f36bebcd]246
[74762a5]247<screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[563e0d6]248mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[bd4f0143]249
[bf5fb94]250 <para>
251 There are many Python scripts in this package which use
252 <command>/usr/bin/env python</command> to access the system Python
[b9c353b]253 which on LFS is <xref linkend="python3"/>. Use the following command
[bf5fb94]254 to fix these scripts:
255 </para>
256
257<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
[9a599135]258<!--
[b94b5b5]259 <para>
260 If you have downloaded <application>compiler-rt</application>,
[9e82e4a]261 fix building it with glibc-2.36 by using the following command:
[b94b5b5]262 </para>
[8859e30]263<screen><userinput remap="pre">patch -Np2 -d projects/compiler-rt &lt;../compiler-rt-14.0.6-glibc_2_36-1.patch</userinput></screen>
[9a599135]264-->
[08c7ccd]265 <para>
266 If you have downloaded <application>clang</application>,
267 apply the following patch to enable <xref linkend="gSSP"/> by default
268 in compiled programs.
269 </para>
270<!-- need <../<patch> instead of -i because -d changes directory
271 before applying -i -->
[0472eb0]272<screen><userinput remap="pre">patch -Np2 -d tools/clang &lt;../clang-&llvm-version;-enable_default_ssp-1.patch</userinput></screen>
[9e82e4a]273
[abdc2e6]274 <para>
275 Install <application>LLVM</application> by running the following
276 commands:
277 </para>
278
[3349c8e]279<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]280cd build &amp;&amp;
281
[8e9b706]282CC=gcc CXX=g++ \
283cmake -DCMAKE_INSTALL_PREFIX=/usr \
284 -DLLVM_ENABLE_FFI=ON \
285 -DCMAKE_BUILD_TYPE=Release \
286 -DLLVM_BUILD_LLVM_DYLIB=ON \
287 -DLLVM_LINK_LLVM_DYLIB=ON \
[b3f053c5]288 -DLLVM_ENABLE_RTTI=ON \
[8e9b706]289 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
[76bec58]290 -DLLVM_BINUTILS_INCDIR=/usr/include \
[3e208e99]291 -DLLVM_INCLUDE_BENCHMARKS=OFF \
[0472eb0]292 -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
[8e9b706]293 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]294ninja</userinput></screen>
[7b74537e]295
[a42c273]296 <para>
297 If you have installed <application>Sphinx</application> and
298 <application>recommonmark</application> and wish
299 to generate the html documentation and manual pages, issue the following
300 commands:
301 </para>
302
[bf5fb94]303<screen remap="doc"><userinput>cmake -DLLVM_BUILD_DOCS=ON \
304 -DLLVM_ENABLE_SPHINX=ON \
[a42c273]305 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
306 -Wno-dev -G Ninja .. &amp;&amp;
307ninja docs-llvm-html docs-llvm-man</userinput></screen>
308
309 <para>
[74762a5]310 The clang documentation can be built too:
[a42c273]311 </para>
312
313<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
314
[abdc2e6]315 <para>
[11b9fb83]316 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
317 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
318 are used by a couple of the link-static tests. -->
[18a65e61]319 To test the results, issue: <command>ninja check-all</command>. Tests are
[11b9fb83]320 built with all <emphasis>available</emphasis> cores, but run using the number
321 of <emphasis>online</emphasis> processors. (The difference is that available
322 cores can be limited using <command>taskset</command>, but taking them offline
323 requires echoing 0 to <filename
324 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
325 by the <systemitem class="username">root</systemitem> user and makes them
326 temporarily unusable by all jobs on the machine.)
[ecc2386]327 <!--Note that 2 of more than 62090 tests (llvm-libtool-darwin/L-and-l.test
328 and ThreadSanitizer-x86_64) are known to fail.-->
[9a599135]329 <!--Note that three tests, <filename>extendhfsf2_test.c</filename>,
[ecc2386]330 <filename>truncdfhf2_test.c</filename>, and
[9a599135]331 <filename>truncsfhf2_test.c</filename> are known to fail.-->
332 <!-- 15.0.1: -->
333 Note that six tests out of more than 64,700 are known to fail:
334 <filename>AddressSanitizer-x86_64-linux :: TestCases/log-path_test.cpp</filename>,
335 <filename>AddressSanitizer-x86_64-linux-dynamic :: TestCases/log-path_test.cpp</filename>,
336 <filename>DataFlowSanitizer-x86_64 :: custom.cpp</filename>,
337 <filename>DataFlowSanitizer-x86_64 :: origin_unaligned_memtrans.c</filename>,
338 <filename>MemProfiler-x86_64-linux :: TestCases/log_path_test.cpp</filename>, and
339 <filename>MemProfiler-x86_64-linux-dynamic :: TestCases/log_path_test.cpp</filename>.
[abdc2e6]340 </para>
[7b74537e]341
[abdc2e6]342 <para>
343 Now, as the <systemitem class="username">root</systemitem> user:
344 </para>
[7b74537e]345
[18a65e61]346<screen role="root"><userinput>ninja install</userinput></screen>
[3e8c126]347<!-- as of version 13.0.0, the install process seems to install the html
348 documentation and the manual pages. The llvm html documentation
349 is installed into /usr/share/doc/llvm, while the clang html documentation
350 is installed into /usr/doc/clang. So we have just to move it. -->
[18a65e61]351 <para>
[7975c68a]352 If you have built the llvm documentation, it has been installed
[3e8c126]353 by the above command, but it needs to be moved. As the
354 <systemitem class="username">root</systemitem> user:
[3349c8e]355 </para>
356
[a42c273]357<screen role="root"
[9a599135]358 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
359mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-&llvm-version; &amp;&amp;
360rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]361
[abdc2e6]362 <para>
[3e8c126]363 If you have built the clang documentation, it has been installed, but
364 needs to be moved too. Again as the
365 <systemitem class="username">root</systemitem> user:
[abdc2e6]366 </para>
367
[a42c273]368<screen role="root"
[9a599135]369 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
370mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-&llvm-version; &amp;&amp;
371rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]372
373 </sect2>
[abdc2e6]374
[5889b252]375 <sect2 role="commands">
376 <title>Command Explanations</title>
377
378 <para>
[599c6d0]379 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch allows
[5889b252]380 <application>LLVM</application> to use
[ce8983d8]381 <application>libffi</application>.
[5889b252]382 </para>
383
[4e845a4]384 <para>
[599c6d0]385 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: This switch builds
386 the libraries as static and links all of them into an unique shared one.
387 This is the recommended way of building a shared library.
[4e845a4]388 </para>
389
[5889b252]390 <para>
[3349c8e]391 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
392 compiler optimizations in order to speed up the code and reduce its size.
[8558044]393 It also disables some compile checks which are not necessary on a
[11eb3ae5]394 production system.
[5889b252]395 </para>
396
[b3b7e36]397 <para>
[8e9b706]398 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
[3349c8e]399 switch enables building for the same target as the host, and also for
[8e9b706]400 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
[599c6d0]401 target is required to build <xref linkend="v4l-utils"/>. The Default is
402 all of the targets. You can use a semicolon separated list. Valid targets
[8558044]403 are: host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore,
[599c6d0]404 M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend, or all.
[b3b7e36]405 </para>
406
[5889b252]407 <para>
[bb0652ca]408 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]409 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
410 linking the tools against the shared library instead of the static ones.
[9a599135]411 It slightly reduces their size and also ensures that llvm-config
412 will correctly use libLLVM-&llvm-maj-version;.so.
[4e845a4]413 </para>
414
[b3f053c5]415 <para>
[8558044]416 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: This switch is used to
417 build LLVM with run-time type information. This is required for building
[b3f053c5]418 <xref linkend="mesa"/>.
419 </para>
420
[76bec58]421 <para>
[599c6d0]422 <parameter>-DLLVM_BINUTILS_INCDIR=/usr/include</parameter>: This switch
[8558044]423 is used to tell the build system the location of binutils headers,
[599c6d0]424 which were installed in LFS. This allows the building of
[76bec58]425 <filename class="libraryfile">LLVMgold.so</filename>, which is needed
426 for building programs with <command>clang</command> and Link Time
427 Optimization (LTO).
428 </para>
429
[3e208e99]430 <para>
[7a9a7b26]431 <parameter>-DLLVM_INCLUDE_BENCHMARKS=OFF</parameter>:
432 is used to disable generation build targets for the LLVM
433 benchmarks. This option requires additional code that
[3e208e99]434 is not currently available.
435 </para>
436
[08c7ccd]437 <para>
438 <parameter>-DCLANG_DEFAULT_PIE_ON_LINUX=ON</parameter>: makes
439 <option>-fpie</option> option the default when compiling programs.
440 Together with the <xref linkend="gASLR"/> feature enabled in the kernel,
441 this defeats some kind of attacks based on known memory layouts.
442 </para>
443
[4e845a4]444 <para>
445 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]446 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
447 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]448 <application>LLVM</application> libraries (about 60) as shared
449 libraries instead of static.
[3349c8e]450 </para>
451
452 <para>
453 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
454 browsable HTML documentation if you have installed <xref
455 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
456 afterwards, and install the generated documentation manually.
[5889b252]457 </para>
458
459 </sect2>
460
[7b74537e]461 <sect2 role="content">
462 <title>Contents</title>
463
464 <segmentedlist>
465 <segtitle>Installed Programs</segtitle>
466 <segtitle>Installed Libraries</segtitle>
467 <segtitle>Installed Directories</segtitle>
468
469 <seglistitem>
[abdc2e6]470 <seg>
[3349c8e]471 bugpoint, c-index-test, clang, clang++ (symlinks to
[3fdc9b0]472 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
[bf5fb94]473 clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format,
[9a599135]474 clang-linker-wrapper, clang-nvlink-wrapper,
475 clang-offload-bundler, clang-offload-packager, clang-offload-wrapper,
[3e8c126]476 clang-refactor, clang-rename, clang-repl, clang-scan-deps,
[9a599135]477 diagtool, dsymutil, git-clang-format, hmaptool, intercept-build, llc, lli,
[3e8c126]478 llvm-addr2line (symlink to llvm-symbolizer),
479 llvm-ar, llvm-as, llvm-bcanalyzer,
[8558044]480 llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat,
481 llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres,
[11eb3ae5]482 llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap,
[9a599135]483 llvm-debuginfod, llvm-debuginfod-find,
484 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar),
485 llvm-dwarfdump, llvm-dwarfutil,
486 llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs,
[11eb3ae5]487 llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
[8558044]488 llvm-lib (symlink to llvm-ar), llvm-libtool-darwin, llvm-link,
489 llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml,
[599c6d0]490 llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump,
[3e8c126]491 llvm-opt-report, llvm-otool (symlink to llv-objdump),
492 llvm-pdbutil, llvm-profdata, llvm-profgen,
[8558044]493 llvm-ranlib (symlink to llvm-ar), llvm-rc,
494 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce,
[9a599135]495 llvm-remark-size-diff,
[3e8c126]496 llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress,
497 llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer,
498 llvm-tapi-diff, llvm-tblgen, llvm-undname, llvm-windres (symlink to
[9a599135]499 llvm-rc), llvm-xray, opt, sancov, sanstats, scan-build,
500 scan-build-py, scan-view, split-file, and verify-uselistorder
[abdc2e6]501 </seg>
502 <seg>
[8558044]503 libLLVM.so,
[9a599135]504 libLLVM*.a (96 libraries),
[8558044]505 libLTO.so,
506 libRemarks.so,
[693c4d1]507 libclang.so,
[599c6d0]508 libclang-cpp.so,
[9a599135]509 libclang*.a (41 libraries),
[76bec58]510 and LLVMgold.so
[abdc2e6]511 </seg>
512 <seg>
[a6221fd]513 /usr/include/{clang,clang-c,llvm,llvm-c},
[3e8c126]514 /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild},
[b7a300f7]515 /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
[11eb3ae5]516 /usr/share/doc/llvm-&llvm-version;
[abdc2e6]517 </seg>
[7b74537e]518 </seglistitem>
519 </segmentedlist>
[abdc2e6]520
[7b74537e]521 <variablelist>
522 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
523 <?dbfo list-presentation="list"?>
524 <?dbhtml list-presentation="table"?>
525
[abdc2e6]526 <varlistentry id="bugpoint">
527 <term><command>bugpoint</command></term>
528 <listitem>
529 <para>
[4c24eb0a]530 is the automatic test case reduction tool
[abdc2e6]531 </para>
532 <indexterm zone="llvm bugpoint">
533 <primary sortas="b-bugpoint">bugpoint</primary>
534 </indexterm>
535 </listitem>
536 </varlistentry>
537
[b7a300f7]538 <varlistentry id="c-index-test">
539 <term><command>c-index-test</command></term>
540 <listitem>
541 <para>
[4c24eb0a]542 is used to test the libclang API and demonstrate its usage
[b7a300f7]543 </para>
544 <indexterm zone="llvm c-index-test">
545 <primary sortas="b-c-index-test">c-index-test</primary>
546 </indexterm>
547 </listitem>
548 </varlistentry>
549
[abdc2e6]550 <varlistentry id="clang">
551 <term><command>clang</command></term>
[7b74537e]552 <listitem>
[abdc2e6]553 <para>
554 is the <application>Clang</application> C, C++,
[4c24eb0a]555 and Objective-C compiler
[abdc2e6]556 </para>
557 <indexterm zone="llvm clang">
558 <primary sortas="b-clang">clang</primary>
[7b74537e]559 </indexterm>
560 </listitem>
561 </varlistentry>
562
[b7a300f7]563 <varlistentry id="clang-check">
564 <term><command>clang-check</command></term>
565 <listitem>
566 <para>
567 is a tool to perform static code analysis and display Abstract
[4c24eb0a]568 Syntax Trees (AST)
[b7a300f7]569 </para>
570 <indexterm zone="llvm clang-check">
571 <primary sortas="b-clang-check">clang-check</primary>
572 </indexterm>
573 </listitem>
574 </varlistentry>
575
[11eb3ae5]576 <varlistentry id="clang-extdef-mapping">
577 <term><command>clang-extdef-mapping</command></term>
578 <listitem>
579 <para>
580 is a tool to collect the USR name and location of external
[4c24eb0a]581 definitions in a source file
[11eb3ae5]582 </para>
583 <indexterm zone="llvm clang-extdef-mapping">
584 <primary sortas="b-clang-extdef-mapping">clang-extdef-mapping</primary>
585 </indexterm>
586 </listitem>
587 </varlistentry>
588
[3349c8e]589 <varlistentry id="clang-format">
590 <term><command>clang-format</command></term>
591 <listitem>
592 <para>
593 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
[4c24eb0a]594 code
[3349c8e]595 </para>
596 <indexterm zone="llvm clang-format">
597 <primary sortas="b-clang-format">clang-format</primary>
598 </indexterm>
599 </listitem>
600 </varlistentry>
601
[9a599135]602 <varlistentry id="clang-linker-wrapper">
603 <term><command>clang-linker-wrapper</command></term>
[11b9fb83]604 <listitem>
605 <para>
[9a599135]606 is a wrapper utility over the host linker
[11b9fb83]607 </para>
[9a599135]608 <indexterm zone="llvm clang-linker-wrapper">
609 <primary sortas="b-clang-linker-wrapper">clang-linker-wrapper</primary>
[11b9fb83]610 </indexterm>
611 </listitem>
612 </varlistentry>
[9a599135]613
614 <varlistentry id="clang-nvlink-wrapper">
615 <term><command>clang-nvlink-wrapper</command></term>
616 <listitem>
617 <para>
618 is a wrapper tool over the nvlink program
619 </para>
620 <indexterm zone="llvm clang-nvlink-wrapper">
621 <primary sortas="b-clang-nvlink-wrapper">clang-nvlink-wrapper</primary>
622 </indexterm>
623 </listitem>
624 </varlistentry>
625
[b7a300f7]626 <varlistentry id="clang-offload-bundler">
627 <term><command>clang-offload-bundler</command></term>
628 <listitem>
629 <para>
[246a7c53]630 is a tool to bundle/unbundle OpenMP offloaded files associated with
[4c24eb0a]631 a common source file
[b7a300f7]632 </para>
633 <indexterm zone="llvm clang-offload-bundler">
634 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
635 </indexterm>
636 </listitem>
637 </varlistentry>
638
[9a599135]639 <varlistentry id="clang-offload-packager">
640 <term><command>clang-offload-packager</command></term>
641 <listitem>
642 <para>
643 is a tool to bundle several object files into a single binary,
644 which can then be used to create a fatbinary containing offloading
645 code
646 </para>
647 <indexterm zone="llvm clang-offload-packager">
648 <primary sortas="b-clang-offload-packager">clang-offload-packager</primary>
649 </indexterm>
650 </listitem>
651 </varlistentry>
652
[11eb3ae5]653 <varlistentry id="clang-offload-wrapper">
[246a7c53]654 <term><command>clang-offload-wrapper</command></term>
[11eb3ae5]655 <listitem>
656 <para>
[4c24eb0a]657 is a tool to create wrapper bitcode for offload target binaries
[11eb3ae5]658 </para>
659 <indexterm zone="llvm clang-offload-wrapper">
660 <primary sortas="b-clang-offload-wrapper">clang-offload-wrapper</primary>
661 </indexterm>
662 </listitem>
663 </varlistentry>
664
[11b9fb83]665 <varlistentry id="clang-refactor">
666 <term><command>clang-refactor</command></term>
667 <listitem>
668 <para>
[4c24eb0a]669 is a Clang-based refactoring tool for C, C++ and Objective-C
[11b9fb83]670 </para>
671 <indexterm zone="llvm clang-refactor">
672 <primary sortas="b-clang-refactor">clang-refactor</primary>
673 </indexterm>
674 </listitem>
675 </varlistentry>
676
[b7a300f7]677 <varlistentry id="clang-rename">
678 <term><command>clang-rename</command></term>
679 <listitem>
680 <para>
[4c24eb0a]681 is a tool to rename symbols in C/C++ programs
[b7a300f7]682 </para>
683 <indexterm zone="llvm clang-rename">
684 <primary sortas="b-clang-rename">clang-rename</primary>
685 </indexterm>
686 </listitem>
687 </varlistentry>
688
[11eb3ae5]689 <varlistentry id="clang-scan-deps">
690 <term><command>clang-scan-deps</command></term>
691 <listitem>
692 <para>
[4c24eb0a]693 is a tool to scan for dependencies in a source file
[11eb3ae5]694 </para>
695 <indexterm zone="llvm clang-scan-deps">
696 <primary sortas="b-clang-scan-deps">clang-scan-deps</primary>
697 </indexterm>
698 </listitem>
699 </varlistentry>
700
[11b9fb83]701 <varlistentry id="diagtool">
702 <term><command>diagtool</command></term>
703 <listitem>
704 <para>
[4c24eb0a]705 is a combination of tools for dealing with diagnostics in clang
[11b9fb83]706 </para>
707 <indexterm zone="llvm diagtool">
708 <primary sortas="b-diagtool">diagtool</primary>
709 </indexterm>
710 </listitem>
711 </varlistentry>
712
713 <varlistentry id="dsymutil">
714 <term><command>dsymutil</command></term>
715 <listitem>
716 <para>
717 is a tool used to manipulate archived DWARF debug symbol files,
[4c24eb0a]718 compatible with the Darwin command <command>dsymutil</command>
[11b9fb83]719 </para>
720 <indexterm zone="llvm dsymutil">
721 <primary sortas="b-dsymutil">dsymutil</primary>
722 </indexterm>
723 </listitem>
724 </varlistentry>
725
[b7a300f7]726 <varlistentry id="git-clang-format">
727 <term><command>git-clang-format</command></term>
728 <listitem>
729 <para>
730 runs clang-format on git generated patches (requires
731 <xref linkend="git"/>)
732 </para>
733 <indexterm zone="llvm git-clang-format">
734 <primary sortas="b-git-clang-format">git-clang-format</primary>
735 </indexterm>
736 </listitem>
737 </varlistentry>
738
[11b9fb83]739 <varlistentry id="hmaptool">
740 <term><command>hmaptool</command></term>
741 <listitem>
742 <para>
[4c24eb0a]743 is a Python tool to dump and construct header maps
[11b9fb83]744 </para>
745 <indexterm zone="llvm hmaptool">
746 <primary sortas="b-hmaptool">hmaptool</primary>
747 </indexterm>
748 </listitem>
749 </varlistentry>
750
[abdc2e6]751 <varlistentry id="llc">
752 <term><command>llc</command></term>
[7b74537e]753 <listitem>
[abdc2e6]754 <para>
[4c24eb0a]755 is the <application>LLVM</application> static compiler
[abdc2e6]756 </para>
757 <indexterm zone="llvm llc">
758 <primary sortas="b-llc">llc</primary>
759 </indexterm>
760 </listitem>
761 </varlistentry>
762
763 <varlistentry id="lli">
764 <term><command>lli</command></term>
765 <listitem>
766 <para>
767 is used to directly execute programs from
[4c24eb0a]768 <application>LLVM</application> bitcode
[abdc2e6]769 </para>
770 <indexterm zone="llvm lli">
771 <primary sortas="b-lli">lli</primary>
772 </indexterm>
773 </listitem>
774 </varlistentry>
775
[11eb3ae5]776 <varlistentry id="llvm-addr2line">
777 <term><command>llvm-addr2line</command></term>
778 <listitem>
779 <para>
780 is a tool used to convert addresses into file names and line
[4c24eb0a]781 numbers
[11eb3ae5]782 </para>
783 <indexterm zone="llvm llvm-addr2line">
784 <primary sortas="b-llvm-addr2line">llvm-addr2line</primary>
785 </indexterm>
786 </listitem>
787 </varlistentry>
788
[abdc2e6]789 <varlistentry id="llvm-ar">
790 <term><command>llvm-ar</command></term>
791 <listitem>
792 <para>
[4c24eb0a]793 is the <application>LLVM</application> archiver
[abdc2e6]794 </para>
795 <indexterm zone="llvm llvm-ar">
796 <primary sortas="b-llvm-ar">llvm-ar</primary>
797 </indexterm>
798 </listitem>
799 </varlistentry>
800
801 <varlistentry id="llvm-as">
802 <term><command>llvm-as</command></term>
803 <listitem>
804 <para>
[4c24eb0a]805 is the <application>LLVM</application> assembler
[abdc2e6]806 </para>
807 <indexterm zone="llvm llvm-as">
808 <primary sortas="b-llvm-as">llvm-as</primary>
809 </indexterm>
810 </listitem>
811 </varlistentry>
812
813 <varlistentry id="llvm-bcanalyzer">
814 <term><command>llvm-bcanalyzer</command></term>
815 <listitem>
816 <para>
[4c24eb0a]817 is the <application>LLVM</application> bitcode analyzer
[abdc2e6]818 </para>
819 <indexterm zone="llvm llvm-bcanalyzer">
820 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
821 </indexterm>
822 </listitem>
823 </varlistentry>
824
[599c6d0]825 <varlistentry id="llvm-bitcode-strip">
826 <term><command>llvm-bitcode-strip</command></term>
827 <listitem>
828 <para>
829 strips LLVM bitcode from an object
830 </para>
831 <indexterm zone="llvm llvm-bitcode-strip">
832 <primary sortas="b-llvm-bitcode-strip">llvm-bitcode-strip</primary>
833 </indexterm>
834 </listitem>
835 </varlistentry>
836
[b7a300f7]837 <varlistentry id="llvm-cat">
838 <term><command>llvm-cat</command></term>
839 <listitem>
840 <para>
[4c24eb0a]841 is a tool to concatenate llvm modules
[b7a300f7]842 </para>
843 <indexterm zone="llvm llvm-cat">
844 <primary sortas="b-llvm-cat">llvm-cat</primary>
845 </indexterm>
846 </listitem>
847 </varlistentry>
848
[11b9fb83]849 <varlistentry id="llvm-cfi-verify">
850 <term><command>llvm-cfi-verify</command></term>
851 <listitem>
852 <para>
853 identifies whether Control Flow Integrity protects all indirect
854 control flow instructions in the provided object file, DSO, or
[4c24eb0a]855 binary
[11b9fb83]856 </para>
857 <indexterm zone="llvm llvm-cfi-verify">
858 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
859 </indexterm>
860 </listitem>
861 </varlistentry>
862
[abdc2e6]863 <varlistentry id="llvm-config">
864 <term><command>llvm-config</command></term>
865 <listitem>
866 <para>
[4c24eb0a]867 Prints <application>LLVM</application> compilation options
[abdc2e6]868 </para>
869 <indexterm zone="llvm llvm-config">
870 <primary sortas="b-llvm-config">llvm-config</primary>
871 </indexterm>
872 </listitem>
873 </varlistentry>
874
875 <varlistentry id="llvm-cov">
876 <term><command>llvm-cov</command></term>
877 <listitem>
878 <para>
[4c24eb0a]879 is used to emit coverage information
[abdc2e6]880 </para>
881 <indexterm zone="llvm llvm-cov">
882 <primary sortas="b-llvm-cov">llvm-cov</primary>
883 </indexterm>
884 </listitem>
885 </varlistentry>
886
[3349c8e]887 <varlistentry id="llvm-c-test">
888 <term><command>llvm-c-test</command></term>
889 <listitem>
890 <para>
[4c24eb0a]891 is a bytecode disassembler
[3349c8e]892 </para>
893 <indexterm zone="llvm llvm-c-test">
894 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
895 </indexterm>
896 </listitem>
897 </varlistentry>
898
[b7a300f7]899 <varlistentry id="llvm-cvtres">
900 <term><command>llvm-cvtres</command></term>
901 <listitem>
902 <para>
[4c24eb0a]903 is a tool to convert Microsoft resource files to COFF
[b7a300f7]904 </para>
905 <indexterm zone="llvm llvm-cvtres">
906 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
907 </indexterm>
908 </listitem>
909 </varlistentry>
910
[b3b7e36]911 <varlistentry id="llvm-cxxdump">
912 <term><command>llvm-cxxdump</command></term>
913 <listitem>
914 <para>
[4c24eb0a]915 is used as a C++ ABI Data Dumper
[b3b7e36]916 </para>
917 <indexterm zone="llvm llvm-cxxdump">
918 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
919 </indexterm>
920 </listitem>
921 </varlistentry>
922
[b7a300f7]923 <varlistentry id="llvm-cxxfilt">
924 <term><command>llvm-cxxfilt</command></term>
925 <listitem>
926 <para>
[4c24eb0a]927 is used to demangle C++ symbols in llvm code
[b7a300f7]928 </para>
929 <indexterm zone="llvm llvm-cxxfilt">
930 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
931 </indexterm>
932 </listitem>
933 </varlistentry>
934
[11eb3ae5]935 <varlistentry id="llvm-cxxmap">
936 <term><command>llvm-cxxmap</command></term>
937 <listitem>
938 <para>
[4c24eb0a]939 is used to remap C++ mangled symbols
[11eb3ae5]940 </para>
941 <indexterm zone="llvm llvm-cxxmap">
942 <primary sortas="b-llvm-cxxmap">llvm-cxxmap</primary>
943 </indexterm>
944 </listitem>
945 </varlistentry>
946
[9a599135]947 <varlistentry id="llvm-debuginfod">
948 <term><command>llvm-debuginfod</command></term>
949 <listitem>
950 <para>
951 is a service providing debug information over an HTTP API for
952 analyzing stripped binaries
953 </para>
954 <indexterm zone="llvm llvm-debuginfod">
955 <primary sortas="b-llvm-debuginfod">llvm-debuginfod</primary>
956 </indexterm>
957 </listitem>
958 </varlistentry>
959
960 <varlistentry id="llvm-debuginfod-find">
961 <term><command>llvm-debuginfod-find</command></term>
962 <listitem>
963 <para>
964 is an interface to the <command>llvm-debuginfod</command> daemon
965 for finding debuginfod artifacts
966 </para>
967 <indexterm zone="llvm llvm-debuginfod-find">
968 <primary sortas="b-llvm-debuginfod-find">llvm-debuginfod-find</primary>
969 </indexterm>
970 </listitem>
971 </varlistentry>
972
[abdc2e6]973 <varlistentry id="llvm-diff">
974 <term><command>llvm-diff</command></term>
975 <listitem>
976 <para>
977 is the <application>LLVM</application> structural
[4c24eb0a]978 '<command>diff</command>'
[abdc2e6]979 </para>
980 <indexterm zone="llvm llvm-diff">
981 <primary sortas="b-llvm-diff">llvm-diff</primary>
982 </indexterm>
983 </listitem>
984 </varlistentry>
985
986 <varlistentry id="llvm-dis">
987 <term><command>llvm-dis</command></term>
988 <listitem>
989 <para>
[4c24eb0a]990 is the <application>LLVM</application> disassembler
[abdc2e6]991 </para>
992 <indexterm zone="llvm llvm-dis">
993 <primary sortas="b-llvm-dis">llvm-dis</primary>
994 </indexterm>
995 </listitem>
996 </varlistentry>
997
[3349c8e]998 <varlistentry id="llvm-dwarfdump">
999 <term><command>llvm-dwarfdump</command></term>
1000 <listitem>
1001 <para>
[4c24eb0a]1002 prints the content of DWARF sections in object files
[3349c8e]1003 </para>
1004 <indexterm zone="llvm llvm-dwarfdump">
1005 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
1006 </indexterm>
1007 </listitem>
1008 </varlistentry>
1009
[9a599135]1010 <varlistentry id="llvm-dwarfutil">
1011 <term><command>llvm-dwarfutil</command></term>
1012 <listitem>
1013 <para>
1014 is a tool to copy and manipulate debug info
1015 </para>
1016 <indexterm zone="llvm llvm-dwarfutil">
1017 <primary sortas="b-llvm-dwarfutil">llvm-dwarfutil</primary>
1018 </indexterm>
1019 </listitem>
1020 </varlistentry>
1021
[3349c8e]1022 <varlistentry id="llvm-dwp">
1023 <term><command>llvm-dwp</command></term>
1024 <listitem>
1025 <para>
[4c24eb0a]1026 merges split DWARF files
[3349c8e]1027 </para>
1028 <indexterm zone="llvm llvm-dwp">
1029 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
1030 </indexterm>
1031 </listitem>
1032 </varlistentry>
1033
[11eb3ae5]1034 <varlistentry id="llvm-elfabi">
1035 <term><command>llvm-elfabi</command></term>
1036 <listitem>
1037 <para>
[4c24eb0a]1038 is used to read information about an ELF binary's ABI
[11eb3ae5]1039 </para>
1040 <indexterm zone="llvm llvm-elfabi">
1041 <primary sortas="b-llvm-elfabi">llvm-elfabi</primary>
1042 </indexterm>
1043 </listitem>
1044 </varlistentry>
1045
[11b9fb83]1046 <varlistentry id="llvm-exegesis">
1047 <term><command>llvm-exegesis</command></term>
1048 <listitem>
1049 <para>
1050 is a benchmarking tool that uses information available in LLVM to
1051 measure host machine instruction characteristics like latency or
[4c24eb0a]1052 port decomposition
[11b9fb83]1053 </para>
1054 <indexterm zone="llvm llvm-exegesis">
1055 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
1056 </indexterm>
1057 </listitem>
1058 </varlistentry>
1059
[abdc2e6]1060 <varlistentry id="llvm-extract">
1061 <term><command>llvm-extract</command></term>
1062 <listitem>
1063 <para>
1064 is used to extract a function from an
[4c24eb0a]1065 <application>LLVM</application> module
[abdc2e6]1066 </para>
1067 <indexterm zone="llvm llvm-extract">
1068 <primary sortas="b-llvm-extract">llvm-extract</primary>
1069 </indexterm>
1070 </listitem>
1071 </varlistentry>
1072
[bf5fb94]1073 <varlistentry id="llvm-gsymutil">
1074 <term><command>llvm-gsymutil</command></term>
1075 <listitem>
1076 <para>
1077 is used to process GSYM Symbolication Format files which
1078 convert memory addresses to function name and source file
[4c24eb0a]1079 line. These files are smaller than DWARF or Breakpad files
[bf5fb94]1080 </para>
1081 <indexterm zone="llvm llvm-gsymutil">
1082 <primary sortas="b-llvm-gsymutil">llvm-gsymutil</primary>
1083 </indexterm>
1084 </listitem>
1085 </varlistentry>
1086
[11eb3ae5]1087 <varlistentry id="llvm-ifs">
1088 <term><command>llvm-ifs</command></term>
1089 <listitem>
1090 <para>
[4c24eb0a]1091 is used to merge interface stubs with object files
[11eb3ae5]1092 </para>
1093 <indexterm zone="llvm llvm-ifs">
1094 <primary sortas="b-llvm-ifs">llvm-ifs</primary>
1095 </indexterm>
1096 </listitem>
1097 </varlistentry>
1098
1099 <varlistentry id="llvm-install-name-tool">
1100 <term><command>llvm-install-name-tool</command></term>
1101 <listitem>
1102 <para>
[4c24eb0a]1103 is used to rewrite load commands into MachO binary format
[11eb3ae5]1104 </para>
1105 <indexterm zone="llvm llvm-install-name-tool">
1106 <primary sortas="b-llvm-install-name-tool">llvm-install-name-tool</primary>
1107 </indexterm>
1108 </listitem>
1109 </varlistentry>
1110
1111 <varlistentry id="llvm-jitlink">
1112 <term><command>llvm-jitlink</command></term>
1113 <listitem>
1114 <para>
1115 is used to parse relocatable object files to make their contents
[4c24eb0a]1116 executable in a target process
[11eb3ae5]1117 </para>
1118 <indexterm zone="llvm llvm-jitlink">
1119 <primary sortas="b-llvm-jitlink">llvm-jitlink</primary>
1120 </indexterm>
1121 </listitem>
1122 </varlistentry>
1123
[599c6d0]1124 <varlistentry id="llvm-libtool-darwin">
1125 <term><command>llvm-libtool-darwin</command></term>
1126 <listitem>
1127 <para>
1128 provides basic libtool functionality on Darwin-based systems.
1129 This is mostly useful if you are generating binaries for macOS
1130 systems
1131 </para>
1132 <indexterm zone="llvm llvm-libtool-darwin">
1133 <primary sortas="b-llvm-libtool-darwin">llvm-libtool-darwin</primary>
1134 </indexterm>
1135 </listitem>
1136 </varlistentry>
1137
[abdc2e6]1138 <varlistentry id="llvm-link">
1139 <term><command>llvm-link</command></term>
1140 <listitem>
1141 <para>
[4c24eb0a]1142 is the <application>LLVM</application> linker
[abdc2e6]1143 </para>
1144 <indexterm zone="llvm llvm-link">
1145 <primary sortas="b-llvm-link">llvm-link</primary>
1146 </indexterm>
1147 </listitem>
1148 </varlistentry>
1149
[11eb3ae5]1150 <varlistentry id="llvm-lipo">
1151 <term><command>llvm-lipo</command></term>
1152 <listitem>
1153 <para>
[4c24eb0a]1154 is used to create universal binaries from MachO files
[11eb3ae5]1155 </para>
1156 <indexterm zone="llvm llvm-lipo">
1157 <primary sortas="b-llvm-lipo">llvm-lipo</primary>
1158 </indexterm>
1159 </listitem>
1160 </varlistentry>
1161
[3349c8e]1162 <varlistentry id="llvm-lto">
1163 <term><command>llvm-lto</command></term>
1164 <listitem>
1165 <para>
1166 is the <application>LLVM</application> LTO (link time optimization)
[4c24eb0a]1167 linker
[3349c8e]1168 </para>
1169 <indexterm zone="llvm llvm-lto">
1170 <primary sortas="b-llvm-lto">llvm-lto</primary>
1171 </indexterm>
1172 </listitem>
1173 </varlistentry>
1174
[b7a300f7]1175 <varlistentry id="llvm-lto2">
1176 <term><command>llvm-lto2</command></term>
1177 <listitem>
1178 <para>
[4c24eb0a]1179 is a test harness for the resolution based LTO interface
[b7a300f7]1180 </para>
1181 <indexterm zone="llvm llvm-lto2">
1182 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
1183 </indexterm>
1184 </listitem>
1185 </varlistentry>
1186
[3349c8e]1187 <varlistentry id="llvm-mc">
1188 <term><command>llvm-mc</command></term>
1189 <listitem>
1190 <para>
[4c24eb0a]1191 is a standalone machine code assembler/disassembler
[3349c8e]1192 </para>
1193 <indexterm zone="llvm llvm-mc">
1194 <primary sortas="b-llvm-mc">llvm-mc</primary>
1195 </indexterm>
1196 </listitem>
1197 </varlistentry>
1198
[11b9fb83]1199 <varlistentry id="llvm-mca">
1200 <term><command>llvm-mca</command></term>
1201 <listitem>
1202 <para>
[c5e3c1c]1203 is a performance analysis tool to statically measure the
[4c24eb0a]1204 performance of machine code
[11b9fb83]1205 </para>
1206 <indexterm zone="llvm llvm-mca">
1207 <primary sortas="b-llvm-mca">llvm-mca</primary>
1208 </indexterm>
1209 </listitem>
1210 </varlistentry>
1211
1212<!-- <varlistentry id="llvm-mcmarkup">
[b7a300f7]1213 <term><command>llvm-mcmarkup</command></term>
1214 <listitem>
1215 <para>
1216 is a parser for machine code markup.
1217 </para>
1218 <indexterm zone="llvm llvm-mcmarkup">
1219 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
1220 </indexterm>
1221 </listitem>
[11b9fb83]1222 </varlistentry>-->
[b7a300f7]1223
[c5e3c1c]1224 <varlistentry id="llvm-ml">
1225 <term><command>llvm-ml</command></term>
1226 <listitem>
1227 <para>
[4c24eb0a]1228 is a playground for machine code provided by LLVM
[c5e3c1c]1229 </para>
1230 <indexterm zone="llvm llvm-ml">
1231 <primary sortas="b-llvm-ml">llvm-ml</primary>
1232 </indexterm>
1233 </listitem>
1234 </varlistentry>
1235
[b7a300f7]1236 <varlistentry id="llvm-modextract">
1237 <term><command>llvm-modextract</command></term>
1238 <listitem>
1239 <para>
[4c24eb0a]1240 is a tool to extract one module from multimodule bitcode files
[b7a300f7]1241 </para>
1242 <indexterm zone="llvm llvm-modextract">
1243 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
1244 </indexterm>
1245 </listitem>
1246 </varlistentry>
1247
1248 <varlistentry id="llvm-mt">
1249 <term><command>llvm-mt</command></term>
1250 <listitem>
1251 <para>
1252 is a tool to generate signed files and catalogs from a
[4c24eb0a]1253 side-by-side assembly manifest (used for Microsoft SDK)
[b7a300f7]1254 </para>
1255 <indexterm zone="llvm llvm-mt">
1256 <primary sortas="b-llvm-mt">llvm-mt</primary>
1257 </indexterm>
1258 </listitem>
1259 </varlistentry>
1260
[abdc2e6]1261 <varlistentry id="llvm-nm">
1262 <term><command>llvm-nm</command></term>
1263 <listitem>
1264 <para>
1265 is used to list <application>LLVM</application> bitcode
[4c24eb0a]1266 and object file's symbol table
[abdc2e6]1267 </para>
1268 <indexterm zone="llvm llvm-nm">
1269 <primary sortas="b-llvm-nm">llvm-nm</primary>
1270 </indexterm>
1271 </listitem>
1272 </varlistentry>
[b3b7e36]1273
[11b9fb83]1274 <varlistentry id="llvm-objcopy">
1275 <term><command>llvm-objcopy</command></term>
1276 <listitem>
1277 <para>
[4c24eb0a]1278 is LLVM's version of an objcopy tool
[11b9fb83]1279 </para>
1280 <indexterm zone="llvm llvm-objcopy">
1281 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
1282 </indexterm>
1283 </listitem>
1284 </varlistentry>
1285
[3349c8e]1286 <varlistentry id="llvm-objdump">
1287 <term><command>llvm-objdump</command></term>
1288 <listitem>
1289 <para>
[4c24eb0a]1290 is an <application>LLVM</application> object file dumper
[3349c8e]1291 </para>
1292 <indexterm zone="llvm llvm-objdump">
1293 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
1294 </indexterm>
1295 </listitem>
1296 </varlistentry>
1297
[b7a300f7]1298 <varlistentry id="llvm-opt-report">
1299 <term><command>llvm-opt-report</command></term>
1300 <listitem>
1301 <para>
1302 is a tool to generate an optimization report from YAML optimization
[4c24eb0a]1303 record files
[b7a300f7]1304 </para>
1305 <indexterm zone="llvm llvm-opt-report">
1306 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
1307 </indexterm>
1308 </listitem>
1309 </varlistentry>
1310
1311 <varlistentry id="llvm-pdbutil">
1312 <term><command>llvm-pdbutil</command></term>
[b3b7e36]1313 <listitem>
1314 <para>
[4c24eb0a]1315 is a PDB (Program Database) dumper. PDB is a Microsoft format
[b3b7e36]1316 </para>
[b7a300f7]1317 <indexterm zone="llvm llvm-pdbutil">
1318 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]1319 </indexterm>
1320 </listitem>
1321 </varlistentry>
[3349c8e]1322
1323 <varlistentry id="llvm-profdata">
1324 <term><command>llvm-profdata</command></term>
[abdc2e6]1325 <listitem>
1326 <para>
[4c24eb0a]1327 is a small tool to manipulate and print profile data files
[abdc2e6]1328 </para>
[3349c8e]1329 <indexterm zone="llvm llvm-profdata">
1330 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]1331 </indexterm>
1332 </listitem>
[3349c8e]1333 </varlistentry>
[abdc2e6]1334
[599c6d0]1335 <varlistentry id="llvm-profgen">
1336 <term><command>llvm-profgen</command></term>
1337 <listitem>
1338 <para>
1339 generates LLVM SPGO profiling information
1340 </para>
1341 <indexterm zone="llvm llvm-profgen">
1342 <primary sortas="b-llvm-profgen">llvm-profgen</primary>
1343 </indexterm>
1344 </listitem>
1345 </varlistentry>
1346
[abdc2e6]1347 <varlistentry id="llvm-ranlib">
1348 <term><command>llvm-ranlib</command></term>
1349 <listitem>
1350 <para>
[3fdc9b0]1351 is used to generate an index for a <application>LLVM</application>
[4c24eb0a]1352 archive
[abdc2e6]1353 </para>
1354 <indexterm zone="llvm llvm-ranlib">
1355 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
1356 </indexterm>
1357 </listitem>
1358 </varlistentry>
1359
[11b9fb83]1360 <varlistentry id="llvm-rc">
1361 <term><command>llvm-rc</command></term>
1362 <listitem>
1363 <para>
1364 is a platform-independent tool to compile resource scripts
[4c24eb0a]1365 into binary resource files
[11b9fb83]1366 </para>
1367 <indexterm zone="llvm llvm-rc">
1368 <primary sortas="b-llvm-rc">llvm-rc</primary>
1369 </indexterm>
1370 </listitem>
1371 </varlistentry>
1372
[3349c8e]1373 <varlistentry id="llvm-readobj">
1374 <term><command>llvm-readobj</command></term>
1375 <listitem>
1376 <para>
[4c24eb0a]1377 displays low-level format-specific information about object files
[3349c8e]1378 </para>
1379 <indexterm zone="llvm llvm-readobj">
1380 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1381 </indexterm>
1382 </listitem>
1383 </varlistentry>
1384
[11eb3ae5]1385 <varlistentry id="llvm-reduce">
1386 <term><command>llvm-reduce</command></term>
1387 <listitem>
1388 <para>
1389 is used to automatically reduce testcases
[4c24eb0a]1390 when running a test suite
[11eb3ae5]1391 </para>
1392 <indexterm zone="llvm llvm-reduce">
1393 <primary sortas="b-llvm-reduce">llvm-reduce</primary>
1394 </indexterm>
1395 </listitem>
1396 </varlistentry>
1397
[9a599135]1398 <varlistentry id="llvm-remark-size-diff">
1399 <term><command>llvm-remark-size-diff</command></term>
1400 <listitem>
1401 <para>
1402 reports the difference in instruction count and stack size
1403 remarks between two remark files
1404 </para>
1405 <indexterm zone="llvm llvm-remark-size-diff">
1406 <primary sortas="b-llvm-remark-size-diff">llvm-remark-size-diff</primary>
1407 </indexterm>
1408 </listitem>
1409 </varlistentry>
1410
[3349c8e]1411 <varlistentry id="llvm-rtdyld">
1412 <term><command>llvm-rtdyld</command></term>
1413 <listitem>
1414 <para>
[4c24eb0a]1415 is the <application>LLVM</application> MC-JIT tool
[3349c8e]1416 </para>
1417 <indexterm zone="llvm llvm-rtdyld">
1418 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1419 </indexterm>
1420 </listitem>
1421 </varlistentry>
1422
1423 <varlistentry id="llvm-size">
1424 <term><command>llvm-size</command></term>
1425 <listitem>
1426 <para>
[4c24eb0a]1427 is the <application>LLVM</application> object size dumper
[3349c8e]1428 </para>
1429 <indexterm zone="llvm llvm-size">
1430 <primary sortas="b-llvm-size">llvm-size</primary>
1431 </indexterm>
1432 </listitem>
1433 </varlistentry>
1434
1435 <varlistentry id="llvm-split">
1436 <term><command>llvm-split</command></term>
1437 <listitem>
1438 <para>
[4c24eb0a]1439 is the <application>LLVM</application> module splitter
[3349c8e]1440 </para>
1441 <indexterm zone="llvm llvm-split">
1442 <primary sortas="b-llvm-split">llvm-split</primary>
1443 </indexterm>
1444 </listitem>
1445 </varlistentry>
1446
[abdc2e6]1447 <varlistentry id="llvm-stress">
1448 <term><command>llvm-stress</command></term>
1449 <listitem>
1450 <para>
1451 is used to generate random
[4c24eb0a]1452 <filename class="extension">.ll</filename> files
[abdc2e6]1453 </para>
1454 <indexterm zone="llvm llvm-stress">
1455 <primary sortas="b-llvm-stress">llvm-stress</primary>
1456 </indexterm>
1457 </listitem>
1458 </varlistentry>
1459
[b7a300f7]1460 <varlistentry id="llvm-strings">
1461 <term><command>llvm-strings</command></term>
1462 <listitem>
1463 <para>
1464 print strings found in a binary (object file, executable, or
[4c24eb0a]1465 archive library)
[b7a300f7]1466 </para>
1467 <indexterm zone="llvm llvm-strings">
1468 <primary sortas="b-llvm-strings">llvm-strings</primary>
1469 </indexterm>
1470 </listitem>
1471 </varlistentry>
1472
[3349c8e]1473 <varlistentry id="llvm-symbolizer">
1474 <term><command>llvm-symbolizer</command></term>
1475 <listitem>
1476 <para>
[b3443239]1477 converts addresses into source code locations
[3349c8e]1478 </para>
1479 <indexterm zone="llvm llvm-symbolizer">
1480 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1481 </indexterm>
1482 </listitem>
1483 </varlistentry>
1484
[abdc2e6]1485 <varlistentry id="llvm-tblgen">
1486 <term><command>llvm-tblgen</command></term>
1487 <listitem>
1488 <para>
1489 is the <application>LLVM</application> Target Description
[4c24eb0a]1490 To C++ Code Generator
[abdc2e6]1491 </para>
1492 <indexterm zone="llvm llvm-tblgen">
1493 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1494 </indexterm>
1495 </listitem>
1496 </varlistentry>
1497
[11b9fb83]1498 <varlistentry id="llvm-undname">
1499 <term><command>llvm-undname</command></term>
1500 <listitem>
1501 <para>
[4c24eb0a]1502 is a tool to demangle names
[11b9fb83]1503 </para>
1504 <indexterm zone="llvm llvm-undname">
1505 <primary sortas="b-llvm-undname">llvm-undname</primary>
1506 </indexterm>
1507 </listitem>
1508 </varlistentry>
1509
[b7a300f7]1510 <varlistentry id="llvm-xray">
1511 <term><command>llvm-xray</command></term>
1512 <listitem>
1513 <para>
[4c24eb0a]1514 is an implementation of Google's XRay function call tracing system
[b7a300f7]1515 </para>
1516 <indexterm zone="llvm llvm-xray">
1517 <primary sortas="b-llvm-xray">llvm-xray</primary>
1518 </indexterm>
1519 </listitem>
1520 </varlistentry>
1521
[9a599135]1522 <varlistentry id="intercept-build">
1523 <term><command>intercept-build</command></term>
[39dd48b]1524 <listitem>
1525 <para>
[9a599135]1526 generates a database of build commands for a project
[39dd48b]1527 </para>
[9a599135]1528 <indexterm zone="llvm intercept-build">
1529 <primary sortas="b-intercept-build">intercept-build</primary>
[39dd48b]1530 </indexterm>
1531 </listitem>
1532 </varlistentry>
[9a599135]1533
[39dd48b]1534
[abdc2e6]1535 <varlistentry id="opt">
1536 <term><command>opt</command></term>
1537 <listitem>
1538 <para>
[4c24eb0a]1539 is the <application>LLVM</application> optimizer
[abdc2e6]1540 </para>
1541 <indexterm zone="llvm opt">
1542 <primary sortas="b-opt">opt</primary>
1543 </indexterm>
1544 </listitem>
1545 </varlistentry>
1546
[3349c8e]1547 <varlistentry id="sancov">
1548 <term><command>sancov</command></term>
1549 <listitem>
1550 <para>
[4c24eb0a]1551 is the sanitizer coverage processing tool
[3349c8e]1552 </para>
1553 <indexterm zone="llvm sancov">
1554 <primary sortas="b-sancov">sancov</primary>
1555 </indexterm>
1556 </listitem>
1557 </varlistentry>
1558
[b4c31a6]1559 <varlistentry id="sanstats">
1560 <term><command>sanstats</command></term>
1561 <listitem>
1562 <para>
[4c24eb0a]1563 is the sanitizer statistics processing tool
[b4c31a6]1564 </para>
1565 <indexterm zone="llvm sanstats">
1566 <primary sortas="b-sanstats">sanstats</primary>
1567 </indexterm>
1568 </listitem>
1569 </varlistentry>
1570
[70251fc]1571 <varlistentry id="scan-build">
1572 <term><command>scan-build</command></term>
1573 <listitem>
1574 <para>
1575 is a <application>Perl</application> script that invokes the
[4c24eb0a]1576 <application>Clang</application> static analyzer
[70251fc]1577 </para>
1578 <indexterm zone="llvm scan-build">
1579 <primary sortas="b-scan-build">scan-build</primary>
[39dd48b]1580 </indexterm>
1581 </listitem>
1582 </varlistentry>
1583
[9a599135]1584 <varlistentry id="scan-build-py">
1585 <term><command>scan-build-py</command></term>
1586 <listitem>
1587 <para>
1588 is a <application>Python</application> script that invokes the
1589 <application>Clang</application> static analyzer
1590 </para>
1591 <indexterm zone="llvm scan-build-py">
1592 <primary sortas="b-scan-build-py">scan-build-py</primary>
1593 </indexterm>
1594 </listitem>
1595 </varlistentry>
1596
[3349c8e]1597 <varlistentry id="scan-view">
1598 <term><command>scan-view</command></term>
1599 <listitem>
1600 <para>
1601 is a viewer for <application>Clang</application> static analyzer
[4c24eb0a]1602 results
[3349c8e]1603 </para>
1604 <indexterm zone="llvm scan-view">
1605 <primary sortas="b-scan-view">scan-view</primary>
1606 </indexterm>
1607 </listitem>
1608 </varlistentry>
1609
[599c6d0]1610 <varlistentry id="split-file">
1611 <term><command>split-file</command></term>
1612 <listitem>
1613 <para>
1614 splits an input file into multiple parts separated by regex
1615 </para>
1616 <indexterm zone="llvm split-file">
1617 <primary sortas="b-split-file">split-file</primary>
1618 </indexterm>
1619 </listitem>
1620 </varlistentry>
1621
[3349c8e]1622 <varlistentry id="verify-uselistorder">
1623 <term><command>verify-uselistorder</command></term>
1624 <listitem>
1625 <para>
1626 is the <application>LLVM</application> tool to verify use-list
[4c24eb0a]1627 order
[3349c8e]1628 </para>
1629 <indexterm zone="llvm verify-uselistorder">
1630 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1631 </indexterm>
1632 </listitem>
1633 </varlistentry>
1634
[599c6d0]1635<!-- Removed in 12.0.0
[39dd48b]1636 <varlistentry id="yaml2obj">
1637 <term><command>yaml2obj</command></term>
1638 <listitem>
1639 <para>
1640 takes a YAML representation of an object file and converts it
[4c24eb0a]1641 to a binary file
[39dd48b]1642 </para>
1643 <indexterm zone="llvm yaml2obj">
1644 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1645 </indexterm>
1646 </listitem>
1647 </varlistentry>
[599c6d0]1648-->
[3349c8e]1649<!--
[abdc2e6]1650 <varlistentry id="libllvm">
1651 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1652 <listitem>
1653 <para>
1654 contains the <application>LLVM</application> API functions.
1655 </para>
1656 <indexterm zone="llvm libllvm">
1657 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1658 </indexterm>
1659 </listitem>
1660 </varlistentry>
[3349c8e]1661
[abdc2e6]1662 <varlistentry id="libprofile_rt">
1663 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1664 <listitem>
1665 <para>
1666 is the C, C++ and Objective-C runtime library for
1667 <application>Clang</application>.
1668 </para>
1669 <indexterm zone="llvm libprofile_rt">
1670 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
[7b74537e]1671 </indexterm>
1672 </listitem>
[0f5ca44]1673 </varlistentry>-->
[7b74537e]1674
1675 </variablelist>
[abdc2e6]1676
[7b74537e]1677 </sect2>
1678
1679</sect1>
Note: See TracBrowser for help on using the repository browser.