source: general/prog/llvm.xml@ c4a9428e

lazarus trunk
Last change on this file since c4a9428e was c4a9428e, checked in by Bruce Dubbs <bdubbs@…>, 4 weeks ago

Archive PyYaml and Update to Cython-3.0.10.

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