source: general/prog/llvm.xml@ c3a493c

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 c3a493c was 9a599135, checked in by Pierre Labastie <pierre.labastie@…>, 19 months ago

Update to llvm-15.0.1

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