source: general/prog/llvm.xml@ 79f4a45

11.3 12.0 12.1 12.2 gimp3 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/for-12.3 xry111/llvm18 xry111/soup3 xry111/spidermonkey128 xry111/xf86-video-removal
Last change on this file since 79f4a45 was 08c7ccd, checked in by Pierre Labastie <pierre.labastie@…>, 2 years ago

Fix alphabetical order in glossary

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