source: general/prog/llvm.xml@ fc72ade

12.0 12.1 gimp3 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since fc72ade was 55fb76ba, checked in by Bruce Dubbs <bdubbs@…>, 14 months ago

Update to llvm-16.0.5.

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