source: general/prog/llvm.xml@ c824000c

12.0 12.1 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 c824000c was eeb331f8, checked in by Bruce Dubbs <bdubbs@…>, 14 months ago

Update to llvm-16.0.4.

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