source: general/prog/llvm.xml@ 9c6c28d

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 9c6c28d was 3f6a6dc, checked in by Xi Ruoyao <xry111@…>, 14 months ago

Update to LLVM-16.0.3 (#17861)

With Thunderbird workaround applied, we can try to update to LLVM 16
again. Note that Firefox may need a similar workaround but at least it
does not crash on start-up.

This reverts commit 218e13ce4ba083720efc136aedb40c5fa0d9eaf2
("Revert back to LLVM-15.0.7 for now"), bump LLVM to 16.0.3, and updated
md5sums for tarballs and test suite status for it.

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