source: general/prog/llvm.xml@ ecc2386

11.2 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/soup3 xry111/xf86-video-removal
Last change on this file since ecc2386 was ecc2386, checked in by Douglas R. Reno <renodr@…>, 21 months ago

libevent: Typo fix
llvm: Document new test failures
Tags

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