source: general/prog/llvm.xml@ 8859e30

11.2 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/soup3 xry111/xf86-video-removal
Last change on this file since 8859e30 was 8859e30, checked in by Pierre Labastie <pierre.labastie@…>, 21 months ago

Fix compiler-rt patch application in llvm

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