source: general/prog/llvm.xml@ 218e13c

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 218e13c was 218e13c, checked in by Douglas R. Reno <renodr@…>, 13 months ago

Revert back to LLVM-15.0.7 for now.

This should fix miscompilations and crashes with Thunderbird and
Firefox.

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