source: general/prog/llvm.xml@ efbfa24

11.3 12.0 12.1 12.2 gimp3 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128 xry111/xf86-video-removal
Last change on this file since efbfa24 was 6bd8b8a, checked in by Douglas R. Reno <renodr@…>, 20 months ago

Tag LLVM, and mention an additional failed test

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