source: general/prog/llvm.xml@ 4454113

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 4454113 was d2a21aa, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Typo

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