source: general/prog/llvm.xml@ 87065037

plabs/python-mods qt5new trunk
Last change on this file since 87065037 was 87065037, checked in by Pierre Labastie <pierre.labastie@…>, 4 months ago

Fix SBU values for llvm and rust

When measuring the SB unit, I used a terminal with "time { ... }".
When measuring LLVM and rust SBUs, I redirected output. It seems
the gnome terminal is very slow, and when redirecting the output of
the "time" command above, the SB unit goes from 119s down to
86s.

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