source: general/prog/llvm.xml@ e4c821e2

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since e4c821e2 was 17658ff, checked in by Xi Ruoyao <xry111@…>, 11 months ago

llvm: Document a test failure

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