source: general/prog/llvm.xml@ e977e138

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

Renamed cmake-15.0.1.src.tar.xz and placed on anduin.

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