source: general/prog/llvm.xml@ 72f9881e

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 72f9881e was 8859e30, checked in by Pierre Labastie <pierre.labastie@…>, 23 months ago

Fix compiler-rt patch application in llvm

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