source: general/prog/llvm.xml@ 7b459c22

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 7b459c22 was 0472eb0, checked in by Pierre Labastie <pierre.labastie@…>, 20 months ago

Add instructions for pie and ssp in clang

Just instructions for now because in a hurry... TODO:

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