source: general/prog/llvm.xml@ 42ddc30

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 42ddc30 was 14891a90, checked in by Xi Ruoyao <xry111@…>, 12 months ago

treewide: More "User Notes" clean up

Remove links to pages w/o real contents.

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