source: general/prog/llvm.xml@ 4fe5cec

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

Update to llvm-15.0.7.

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