source: general/prog/llvm.xml@ f66a203

12.1 ken/TL2024 lazarus rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since f66a203 was ab4fdfc, checked in by Pierre Labastie <pierre.labastie@…>, 4 months ago

Change all xml decl to encoding=utf-8

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