source: general/prog/llvm.xml@ 3f2db3a6

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 3f2db3a6 was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

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