source: general/prog/llvm.xml@ be5298b4

11.3 12.0 12.1 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/llvm18 xry111/xf86-video-removal
Last change on this file since be5298b4 was 6bd8b8a, checked in by Douglas R. Reno <renodr@…>, 16 months ago

Tag LLVM, and mention an additional failed test

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