source: general/prog/llvm.xml@ eb19100e

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since eb19100e was 75fee1b, checked in by Bruce Dubbs <bdubbs@…>, 17 months ago

emove references to Xorg "katamari"
Also tweak a tar command in llvm.

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