source: general/prog/llvm.xml@ b359074a

gimp3 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since b359074a was b359074a, checked in by Bruce Dubbs <bdubbs@…>, 3 months ago

Update to llvm-18.1.7.

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