source: general/prog/llvm.xml@ 9e2a8bab

10.0 10.1 11.0 11.1 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 upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9e2a8bab was 9e2a8bab, checked in by Douglas R. Reno <renodr@…>, 4 years ago

Update to libcap-2.38
Update to dbus-1.12.20

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23368 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 41.0 KB
RevLine 
[7b74537e]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
[563e0d6]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">
[abdc2e6]10 <!ENTITY llvm-download-ftp " ">
[986f53b9]11 <!ENTITY llvm-md5sum "693cefdc49d618f828144486a18b473f">
12 <!ENTITY llvm-size "34 MB">
13 <!ENTITY llvm-buildsize "2.3 GB (with Clang, 699 MB installed, add 18 GB for tests)">
14 <!ENTITY llvm-time "30 SBU (with Clang and parallelism=4, add 5.8 SBU for tests)">
[a6221fd]15
[81210e4]16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
[986f53b9]17 <!ENTITY clang-md5sum "717ef92318fed4dbe1ee058368cfb552">
18 <!ENTITY clang-size "14 MB">
[a6221fd]19
[563e0d6]20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
[986f53b9]21 <!ENTITY compiler-rt-md5sum "3a8477233f69600f3e2ca997405c29db">
22 <!ENTITY compiler-rt-size "2.0 MB">
[7b74537e]23]>
24
[abdc2e6]25<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]26 <?dbhtml filename="llvm.html" ?>
27
28 <sect1info>
29 <othername>$LastChangedBy$</othername>
30 <date>$Date$</date>
31 </sect1info>
32
33 <title>LLVM-&llvm-version;</title>
34
35 <indexterm zone="llvm">
36 <primary sortas="a-LLVM">LLVM</primary>
37 </indexterm>
38
39 <sect2 role="package">
40 <title>Introduction to LLVM</title>
41
[abdc2e6]42 <para>
[a6221fd]43 The <application>LLVM</application> package contains a collection of
44 modular and reusable compiler and toolchain technologies. The Low Level
45 Virtual Machine (LLVM) Core libraries provide a modern source and
46 target-independent optimizer, along with code generation support for many
47 popular CPUs (as well as some less common ones!). These libraries are
48 built around a well specified code representation known as the LLVM
49 intermediate representation ("LLVM IR").
[abdc2e6]50 </para>
[f36bebcd]51
[abdc2e6]52 <para>
[a6221fd]53 The optional <application>Clang</application> and <application>Compiler
[43d840ed]54 RT</application> packages provide new C, C++, Objective C and Objective
[a6221fd]55 C++ front-ends and runtime libraries for the
[9da4cc6f]56 <application>LLVM</application> and are required by some packages which
57 use <application>Rust</application>, for example
58 <application>firefox</application>.
[abdc2e6]59 </para>
[7b74537e]60
[62a5037e]61 &lfs91_checked;
[7b74537e]62
63 <bridgehead renderas="sect3">Package Information</bridgehead>
64 <itemizedlist spacing="compact">
65 <listitem>
[abdc2e6]66 <para>
67 Download (HTTP): <ulink url="&llvm-download-http;"/>
68 </para>
[7b74537e]69 </listitem>
70 <listitem>
[abdc2e6]71 <para>
72 Download (FTP): <ulink url="&llvm-download-ftp;"/>
73 </para>
[7b74537e]74 </listitem>
75 <listitem>
[abdc2e6]76 <para>
77 Download MD5 sum: &llvm-md5sum;
78 </para>
[7b74537e]79 </listitem>
80 <listitem>
[abdc2e6]81 <para>
82 Download size: &llvm-size;
83 </para>
[7b74537e]84 </listitem>
85 <listitem>
[abdc2e6]86 <para>
87 Estimated disk space required: &llvm-buildsize;
88 </para>
[7b74537e]89 </listitem>
90 <listitem>
[abdc2e6]91 <para>
92 Estimated build time: &llvm-time;
93 </para>
[7b74537e]94 </listitem>
95 </itemizedlist>
96
[abdc2e6]97 <bridgehead renderas="sect3">Optional Downloads</bridgehead>
[f36bebcd]98
[70251fc]99 <bridgehead renderas="sect4">Clang</bridgehead>
100 <itemizedlist spacing="compact">
101 <listitem>
102 <para>
103 Download: <ulink url="&clang-download-http;"/>
104 </para>
105 </listitem>
106 <listitem>
107 <para>
108 Download MD5 sum: &clang-md5sum;
109 </para>
110 </listitem>
111 <listitem>
112 <para>
113 Download size: &clang-size;
114 </para>
115 </listitem>
116 </itemizedlist>
117
118 <bridgehead renderas="sect4">Compiler RT</bridgehead>
119 <itemizedlist spacing="compact">
120 <listitem>
121 <para>
122 Download: <ulink url="&compiler-rt-download-http;"/>
123 </para>
124 </listitem>
125 <listitem>
126 <para>
127 Download MD5 sum: &compiler-rt-md5sum;
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 Download size: &compiler-rt-size;
133 </para>
134 </listitem>
135 </itemizedlist>
[1f44775e]136
[b7a300f7]137<!-- <itemizedlist spacing="compact">
[a6d167b9]138 <listitem>
139 <para>
140 Optional patch:
141 <ulink url="&patch-root;/compiler-rt-4.0.1-glibc-2.26-1.patch"/>
142 (required if using compiler-rt)
143 </para>
144 </listitem>
145 </itemizedlist>
[b7a300f7]146-->
[7b74537e]147 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
148
[7b3f441]149 <bridgehead renderas="sect4">Required</bridgehead>
150 <para role="required">
[7170000e]151 <xref linkend="cmake"/>
[f36bebcd]152 </para>
153
[7b74537e]154 <bridgehead renderas="sect4">Optional</bridgehead>
155 <para role="optional">
[abdc2e6]156 <xref linkend="doxygen"/>,
[9e2a8bab]157 <xref linkend="git"/>,
[abdc2e6]158 <xref linkend="graphviz"/>,
159 <xref linkend="libxml2"/>,
[7170000e]160 <xref linkend="python2"/>,
[a96b7ae]161 <xref linkend="rsync"/> (for tests),
[2d98031c]162 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]163 <xref linkend="valgrind"/>,
[d21c6551]164 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]165 <xref linkend="zip"/>,
[c263b88]166 <ulink url="http://www.ocaml.org/">OCaml</ulink>,
[a96b7ae]167 <ulink url="https://pypi.org/project/psutil/">psutil</ulink>,
[c263b88]168 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>,
[8f62346]169 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>, and
170 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]171 </para>
172
173 <para condition="html" role="usernotes">User Notes:
[abdc2e6]174 <ulink url="&blfs-wiki;/llvm"/>
175 </para>
[7b74537e]176 </sect2>
177
178 <sect2 role="installation">
179 <title>Installation of LLVM</title>
180
[abdc2e6]181 <para>
182 If you have downloaded the optional packages, install them into
183 the source tree by running the following commands:
184 </para>
[f36bebcd]185
[81210e4]186<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[563e0d6]187tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[f36bebcd]188
[81210e4]189mv tools/clang-&llvm-version;.src tools/clang &amp;&amp;
[563e0d6]190mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[bd4f0143]191
[abdc2e6]192 <para>
193 Install <application>LLVM</application> by running the following
194 commands:
195 </para>
196
[3349c8e]197<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]198cd build &amp;&amp;
199
[8e9b706]200CC=gcc CXX=g++ \
201cmake -DCMAKE_INSTALL_PREFIX=/usr \
202 -DLLVM_ENABLE_FFI=ON \
203 -DCMAKE_BUILD_TYPE=Release \
204 -DLLVM_BUILD_LLVM_DYLIB=ON \
205 -DLLVM_LINK_LLVM_DYLIB=ON \
[b3f053c5]206 -DLLVM_ENABLE_RTTI=ON \
[8e9b706]207 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
208 -DLLVM_BUILD_TESTS=ON \
209 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]210ninja</userinput></screen>
[7b74537e]211
[a42c273]212 <para>
213 If you have installed <application>Sphinx</application> and
214 <application>recommonmark</application> and wish
215 to generate the html documentation and manual pages, issue the following
216 commands:
217 </para>
218
219<screen remap="doc"><userinput>cmake -DLLVM_ENABLE_SPHINX=ON \
220 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
221 -Wno-dev -G Ninja .. &amp;&amp;
222ninja docs-llvm-html docs-llvm-man</userinput></screen>
223
224 <para>
225 If you have downloaded the optional packages, the clang documentation
226 can be built too:
227 </para>
228
229<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
230
[abdc2e6]231 <para>
[11b9fb83]232 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
233 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
234 are used by a couple of the link-static tests. -->
[18a65e61]235 To test the results, issue: <command>ninja check-all</command>. Tests are
[11b9fb83]236 built with all <emphasis>available</emphasis> cores, but run using the number
237 of <emphasis>online</emphasis> processors. (The difference is that available
238 cores can be limited using <command>taskset</command>, but taking them offline
239 requires echoing 0 to <filename
240 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
241 by the <systemitem class="username">root</systemitem> user and makes them
242 temporarily unusable by all jobs on the machine.)
[986f53b9]243 Note that the Sanitizer based tests (5 of more than 41000 tests run)
[693c4d1]244 are known to fail.
[11b9fb83]245
[abdc2e6]246 </para>
[7b74537e]247
[abdc2e6]248 <para>
249 Now, as the <systemitem class="username">root</systemitem> user:
250 </para>
[7b74537e]251
[18a65e61]252<screen role="root"><userinput>ninja install</userinput></screen>
253
254 <para>
[a42c273]255 If you have built the the llvm documentation, install it by running the
256 following commands as the <systemitem class="username">root</systemitem>
257 user:
[3349c8e]258 </para>
259
[a42c273]260<screen role="root"
261 remap="doc"><userinput>install -v -m644 docs/man/* /usr/share/man/man1 &amp;&amp;
[3349c8e]262install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/llvm-html &amp;&amp;
263cp -Rv docs/html/* /usr/share/doc/llvm-&llvm-version;/llvm-html</userinput></screen>
[7b74537e]264
[abdc2e6]265 <para>
[a42c273]266 If you have built the clang documentation, it can be installed in the
267 same way (again as the
[3349c8e]268 <systemitem class="username">root</systemitem> user):
[abdc2e6]269 </para>
270
[a42c273]271<screen role="root"
272 remap="doc"><userinput>install -v -m644 tools/clang/docs/man/* /usr/share/man/man1 &amp;&amp;
[3349c8e]273install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/clang-html &amp;&amp;
274cp -Rv tools/clang/docs/html/* /usr/share/doc/llvm-&llvm-version;/clang-html</userinput></screen>
[7b74537e]275
276 </sect2>
[abdc2e6]277
[5889b252]278 <sect2 role="commands">
279 <title>Command Explanations</title>
280
281 <para>
[f1d7196]282 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch enables
[5889b252]283 <application>LLVM</application> to use
[ce8983d8]284 <application>libffi</application>.
[5889b252]285 </para>
286
[4e845a4]287 <para>
288 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: builds libraries as
289 static and links all of them into an unique shared one. This is the
290 recommended way of building a shared library.
291 </para>
292
[5889b252]293 <para>
[3349c8e]294 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
295 compiler optimizations in order to speed up the code and reduce its size.
296 It also disables some compile checks, not necessary on a production
297 system.
[5889b252]298 </para>
299
[b3b7e36]300 <para>
[8e9b706]301 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
[3349c8e]302 switch enables building for the same target as the host, and also for
[8e9b706]303 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
304 target is required to build <xref linkend="v4l-utils"/>. Default is
[3349c8e]305 all. You can use a semicolon separated list. Valid targets are: host,
306 X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, MSP430, NVPTX,
307 SystemZ, AMDGPU, BPF, CppBackend, or all.
[b3b7e36]308 </para>
309
[5889b252]310 <para>
[bb0652ca]311 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]312 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
313 linking the tools against the shared library instead of the static ones.
[bb0652ca]314 It also slightly reduces their size and also ensures that llvm-config
[125a8d3]315 will correctly use libLLVM-&llvm-majmin-version;.so.
[4e845a4]316 </para>
317
[b3f053c5]318 <para>
[935216e]319 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: Used to build LLVM with
[b3f053c5]320 run-time type information. This is required for building
321 <xref linkend="mesa"/>.
322 </para>
323
[4e845a4]324 <para>
325 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]326 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
327 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]328 <application>LLVM</application> libraries (about 60) as shared
329 libraries instead of static.
[3349c8e]330 </para>
331
332 <para>
333 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
334 browsable HTML documentation if you have installed <xref
335 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
336 afterwards, and install the generated documentation manually.
[5889b252]337 </para>
338
339 </sect2>
340
[7b74537e]341 <sect2 role="content">
342 <title>Contents</title>
343
344 <segmentedlist>
345 <segtitle>Installed Programs</segtitle>
346 <segtitle>Installed Libraries</segtitle>
347 <segtitle>Installed Directories</segtitle>
348
349 <seglistitem>
[abdc2e6]350 <seg>
[3349c8e]351 bugpoint, c-index-test, clang, clang++ (symlinks to
[3fdc9b0]352 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
[11b9fb83]353 clang-cpp (last two symlinks to clang), clang-format, clang-func-mapping
354 clang-import-test, clang-offload-bundler, clang-refactor, clang-rename,
355 diagtool, dsymutil, git-clang-format, hmap-tool, llc, lli, llvm-ar,
356 llvm-as, llvm-bcanalyzer, llvm-cat, llvm-cfi-verify, llvm-config,
357 llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt,
358 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump,
359 llvm-dwp, llvm-exegenesis, llvm-extract, llvm-lib (symlink to llvm-ar),
360 llvm-link, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-modextract,
361 llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report,
362 llvm-pdbutil, llvm-profdata, llvm-ranlib (symlink to llvm-ar), llvm-rc,
363 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-rtdyld,
364 llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (symlink
365 to llvm-objcopy), llvm-symbolizer, llvm-tblgen, llvm-undname, llvm-xray,
[b7a300f7]366 obj2yaml, opt, sancov, sanstats, scan-build, scan-view,
367 verify-uselistorder, and yaml2obj
[abdc2e6]368 </seg>
369 <seg>
[693c4d1]370 libLLVM.so,
371 libLLVM*.a (75 libraries),
372 libLTO.so,
373 libclang.so,
374 and libclang*.a (63 libraries)
[abdc2e6]375 </seg>
376 <seg>
[a6221fd]377 /usr/include/{clang,clang-c,llvm,llvm-c},
[b7a300f7]378 /usr/lib/{clang,cmake/{clang,llvm}},
379 /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
380 /usr/share/doc/llvm-&llvm-version;}
[abdc2e6]381 </seg>
[7b74537e]382 </seglistitem>
383 </segmentedlist>
[abdc2e6]384
[7b74537e]385 <variablelist>
386 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
387 <?dbfo list-presentation="list"?>
388 <?dbhtml list-presentation="table"?>
389
[abdc2e6]390 <varlistentry id="bugpoint">
391 <term><command>bugpoint</command></term>
392 <listitem>
393 <para>
394 is the automatic test case reduction tool.
395 </para>
396 <indexterm zone="llvm bugpoint">
397 <primary sortas="b-bugpoint">bugpoint</primary>
398 </indexterm>
399 </listitem>
400 </varlistentry>
401
[b7a300f7]402 <varlistentry id="c-index-test">
403 <term><command>c-index-test</command></term>
404 <listitem>
405 <para>
406 is used to test the libclang API and demonstrate its usage.
407 </para>
408 <indexterm zone="llvm c-index-test">
409 <primary sortas="b-c-index-test">c-index-test</primary>
410 </indexterm>
411 </listitem>
412 </varlistentry>
413
[abdc2e6]414 <varlistentry id="clang">
415 <term><command>clang</command></term>
[7b74537e]416 <listitem>
[abdc2e6]417 <para>
418 is the <application>Clang</application> C, C++,
419 and Objective-C compiler.
420 </para>
421 <indexterm zone="llvm clang">
422 <primary sortas="b-clang">clang</primary>
[7b74537e]423 </indexterm>
424 </listitem>
425 </varlistentry>
426
[b7a300f7]427 <varlistentry id="clang-check">
428 <term><command>clang-check</command></term>
429 <listitem>
430 <para>
431 is a tool to perform static code analysis and display Abstract
432 Syntax Trees (AST).
433 </para>
434 <indexterm zone="llvm clang-check">
435 <primary sortas="b-clang-check">clang-check</primary>
436 </indexterm>
437 </listitem>
438 </varlistentry>
439
[3349c8e]440 <varlistentry id="clang-format">
441 <term><command>clang-format</command></term>
442 <listitem>
443 <para>
444 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
445 code.
446 </para>
447 <indexterm zone="llvm clang-format">
448 <primary sortas="b-clang-format">clang-format</primary>
449 </indexterm>
450 </listitem>
451 </varlistentry>
452
[11b9fb83]453 <varlistentry id="clang-func-mapping">
454 <term><command>clang-func-mapping</command></term>
455 <listitem>
456 <para>
457 collects the name and location of all function definitions in the
458 source files.
459 </para>
460 <indexterm zone="llvm clang-func-mapping">
461 <primary sortas="b-clang-func-mapping">clang-func-mapping</primary>
462 </indexterm>
463 </listitem>
464 </varlistentry>
465
[b7a300f7]466 <varlistentry id="clang-offload-bundler">
467 <term><command>clang-offload-bundler</command></term>
468 <listitem>
469 <para>
470 is a tool to bundle/unbundle openMP offloaded files associated with
471 a common source file.
472 </para>
473 <indexterm zone="llvm clang-offload-bundler">
474 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
475 </indexterm>
476 </listitem>
477 </varlistentry>
478
[11b9fb83]479 <varlistentry id="clang-refactor">
480 <term><command>clang-refactor</command></term>
481 <listitem>
482 <para>
483 is a Clang-based refactoring tool for C, C++ and Objective.
484 </para>
485 <indexterm zone="llvm clang-refactor">
486 <primary sortas="b-clang-refactor">clang-refactor</primary>
487 </indexterm>
488 </listitem>
489 </varlistentry>
490
[b7a300f7]491 <varlistentry id="clang-rename">
492 <term><command>clang-rename</command></term>
493 <listitem>
494 <para>
495 is a tool to rename symbols in C/C++ programs.
496 </para>
497 <indexterm zone="llvm clang-rename">
498 <primary sortas="b-clang-rename">clang-rename</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>
502
[11b9fb83]503 <varlistentry id="diagtool">
504 <term><command>diagtool</command></term>
505 <listitem>
506 <para>
507 is a combination of tools for dealing with diagnostics in clang.
508 </para>
509 <indexterm zone="llvm diagtool">
510 <primary sortas="b-diagtool">diagtool</primary>
511 </indexterm>
512 </listitem>
513 </varlistentry>
514
515 <varlistentry id="dsymutil">
516 <term><command>dsymutil</command></term>
517 <listitem>
518 <para>
519 is a tool used to manipulate archived DWARF debug symbol files,
520 compatible with the Darwin command <command>dsymutil</command>.
521 </para>
522 <indexterm zone="llvm dsymutil">
523 <primary sortas="b-dsymutil">dsymutil</primary>
524 </indexterm>
525 </listitem>
526 </varlistentry>
527
[b7a300f7]528 <varlistentry id="git-clang-format">
529 <term><command>git-clang-format</command></term>
530 <listitem>
531 <para>
532 runs clang-format on git generated patches (requires
533 <xref linkend="git"/>)
534 </para>
535 <indexterm zone="llvm git-clang-format">
536 <primary sortas="b-git-clang-format">git-clang-format</primary>
537 </indexterm>
538 </listitem>
539 </varlistentry>
540
[11b9fb83]541 <varlistentry id="hmaptool">
542 <term><command>hmaptool</command></term>
543 <listitem>
544 <para>
545 is a Python tool to dump and construct header maps.
546 </para>
547 <indexterm zone="llvm hmaptool">
548 <primary sortas="b-hmaptool">hmaptool</primary>
549 </indexterm>
550 </listitem>
551 </varlistentry>
552
[abdc2e6]553 <varlistentry id="llc">
554 <term><command>llc</command></term>
[7b74537e]555 <listitem>
[abdc2e6]556 <para>
557 is the <application>LLVM</application> static compiler.
558 </para>
559 <indexterm zone="llvm llc">
560 <primary sortas="b-llc">llc</primary>
561 </indexterm>
562 </listitem>
563 </varlistentry>
564
565 <varlistentry id="lli">
566 <term><command>lli</command></term>
567 <listitem>
568 <para>
569 is used to directly execute programs from
570 <application>LLVM</application> bitcode.
571 </para>
572 <indexterm zone="llvm lli">
573 <primary sortas="b-lli">lli</primary>
574 </indexterm>
575 </listitem>
576 </varlistentry>
577
578 <varlistentry id="llvm-ar">
579 <term><command>llvm-ar</command></term>
580 <listitem>
581 <para>
582 is the <application>LLVM</application> archiver.
583 </para>
584 <indexterm zone="llvm llvm-ar">
585 <primary sortas="b-llvm-ar">llvm-ar</primary>
586 </indexterm>
587 </listitem>
588 </varlistentry>
589
590 <varlistentry id="llvm-as">
591 <term><command>llvm-as</command></term>
592 <listitem>
593 <para>
594 is the <application>LLVM</application> assembler.
595 </para>
596 <indexterm zone="llvm llvm-as">
597 <primary sortas="b-llvm-as">llvm-as</primary>
598 </indexterm>
599 </listitem>
600 </varlistentry>
601
602 <varlistentry id="llvm-bcanalyzer">
603 <term><command>llvm-bcanalyzer</command></term>
604 <listitem>
605 <para>
606 is the <application>LLVM</application> bitcode analyzer.
607 </para>
608 <indexterm zone="llvm llvm-bcanalyzer">
609 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
610 </indexterm>
611 </listitem>
612 </varlistentry>
613
[b7a300f7]614 <varlistentry id="llvm-cat">
615 <term><command>llvm-cat</command></term>
616 <listitem>
617 <para>
618 is a tool to concatenate llvm modules.
619 </para>
620 <indexterm zone="llvm llvm-cat">
621 <primary sortas="b-llvm-cat">llvm-cat</primary>
622 </indexterm>
623 </listitem>
624 </varlistentry>
625
[11b9fb83]626 <varlistentry id="llvm-cfi-verify">
627 <term><command>llvm-cfi-verify</command></term>
628 <listitem>
629 <para>
630 identifies whether Control Flow Integrity protects all indirect
631 control flow instructions in the provided object file, DSO, or
632 binary.
633 </para>
634 <indexterm zone="llvm llvm-cfi-verify">
635 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
636 </indexterm>
637 </listitem>
638 </varlistentry>
639
[abdc2e6]640 <varlistentry id="llvm-config">
641 <term><command>llvm-config</command></term>
642 <listitem>
643 <para>
644 Prints <application>LLVM</application> compilation options.
645 </para>
646 <indexterm zone="llvm llvm-config">
647 <primary sortas="b-llvm-config">llvm-config</primary>
648 </indexterm>
649 </listitem>
650 </varlistentry>
651
652 <varlistentry id="llvm-cov">
653 <term><command>llvm-cov</command></term>
654 <listitem>
655 <para>
656 is used to emit coverage information.
657 </para>
658 <indexterm zone="llvm llvm-cov">
659 <primary sortas="b-llvm-cov">llvm-cov</primary>
660 </indexterm>
661 </listitem>
662 </varlistentry>
663
[3349c8e]664 <varlistentry id="llvm-c-test">
665 <term><command>llvm-c-test</command></term>
666 <listitem>
667 <para>
668 is a bytecode disassembler.
669 </para>
670 <indexterm zone="llvm llvm-c-test">
671 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
672 </indexterm>
673 </listitem>
674 </varlistentry>
675
[b7a300f7]676 <varlistentry id="llvm-cvtres">
677 <term><command>llvm-cvtres</command></term>
678 <listitem>
679 <para>
680 is a tool to convert Microsoft resource files to COFF.
681 </para>
682 <indexterm zone="llvm llvm-cvtres">
683 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
684 </indexterm>
685 </listitem>
686 </varlistentry>
687
[b3b7e36]688 <varlistentry id="llvm-cxxdump">
689 <term><command>llvm-cxxdump</command></term>
690 <listitem>
691 <para>
[3fdc9b0]692 is used as a C++ ABI Data Dumper.
[b3b7e36]693 </para>
694 <indexterm zone="llvm llvm-cxxdump">
695 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
696 </indexterm>
697 </listitem>
698 </varlistentry>
699
[b7a300f7]700 <varlistentry id="llvm-cxxfilt">
701 <term><command>llvm-cxxfilt</command></term>
702 <listitem>
703 <para>
704 is used to demangle C++ symbols in llvm code.
705 </para>
706 <indexterm zone="llvm llvm-cxxfilt">
707 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
708 </indexterm>
709 </listitem>
710 </varlistentry>
711
[abdc2e6]712 <varlistentry id="llvm-diff">
713 <term><command>llvm-diff</command></term>
714 <listitem>
715 <para>
716 is the <application>LLVM</application> structural
717 '<command>diff</command>'.
718 </para>
719 <indexterm zone="llvm llvm-diff">
720 <primary sortas="b-llvm-diff">llvm-diff</primary>
721 </indexterm>
722 </listitem>
723 </varlistentry>
724
725 <varlistentry id="llvm-dis">
726 <term><command>llvm-dis</command></term>
727 <listitem>
728 <para>
729 is the <application>LLVM</application> disassembler.
730 </para>
731 <indexterm zone="llvm llvm-dis">
732 <primary sortas="b-llvm-dis">llvm-dis</primary>
733 </indexterm>
734 </listitem>
735 </varlistentry>
736
[3349c8e]737 <varlistentry id="llvm-dwarfdump">
738 <term><command>llvm-dwarfdump</command></term>
739 <listitem>
740 <para>
741 prints the content of DWARF sections in object files.
742 </para>
743 <indexterm zone="llvm llvm-dwarfdump">
744 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
745 </indexterm>
746 </listitem>
747 </varlistentry>
748
749 <varlistentry id="llvm-dwp">
750 <term><command>llvm-dwp</command></term>
751 <listitem>
752 <para>
[3fdc9b0]753 merges split DWARF files.
[3349c8e]754 </para>
755 <indexterm zone="llvm llvm-dwp">
756 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
757 </indexterm>
758 </listitem>
759 </varlistentry>
760
[11b9fb83]761 <varlistentry id="llvm-exegesis">
762 <term><command>llvm-exegesis</command></term>
763 <listitem>
764 <para>
765 is a benchmarking tool that uses information available in LLVM to
766 measure host machine instruction characteristics like latency or
767 port decomposition.
768 </para>
769 <indexterm zone="llvm llvm-exegesis">
770 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
771 </indexterm>
772 </listitem>
773 </varlistentry>
774
[abdc2e6]775 <varlistentry id="llvm-extract">
776 <term><command>llvm-extract</command></term>
777 <listitem>
778 <para>
779 is used to extract a function from an
780 <application>LLVM</application> module.
781 </para>
782 <indexterm zone="llvm llvm-extract">
783 <primary sortas="b-llvm-extract">llvm-extract</primary>
784 </indexterm>
785 </listitem>
786 </varlistentry>
787
788 <varlistentry id="llvm-link">
789 <term><command>llvm-link</command></term>
790 <listitem>
791 <para>
792 is the <application>LLVM</application> linker.
793 </para>
794 <indexterm zone="llvm llvm-link">
795 <primary sortas="b-llvm-link">llvm-link</primary>
796 </indexterm>
797 </listitem>
798 </varlistentry>
799
[3349c8e]800 <varlistentry id="llvm-lto">
801 <term><command>llvm-lto</command></term>
802 <listitem>
803 <para>
804 is the <application>LLVM</application> LTO (link time optimization)
805 linker.
806 </para>
807 <indexterm zone="llvm llvm-lto">
808 <primary sortas="b-llvm-lto">llvm-lto</primary>
809 </indexterm>
810 </listitem>
811 </varlistentry>
812
[b7a300f7]813 <varlistentry id="llvm-lto2">
814 <term><command>llvm-lto2</command></term>
815 <listitem>
816 <para>
817 is a test harness for the resolution based LTO interface.
818 </para>
819 <indexterm zone="llvm llvm-lto2">
820 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
821 </indexterm>
822 </listitem>
823 </varlistentry>
824
[3349c8e]825 <varlistentry id="llvm-mc">
826 <term><command>llvm-mc</command></term>
827 <listitem>
828 <para>
829 is a standalone machine code assembler/disassembler.
830 </para>
831 <indexterm zone="llvm llvm-mc">
832 <primary sortas="b-llvm-mc">llvm-mc</primary>
833 </indexterm>
834 </listitem>
835 </varlistentry>
836
[11b9fb83]837 <varlistentry id="llvm-mca">
838 <term><command>llvm-mca</command></term>
839 <listitem>
840 <para>
841 is a is a performance analysis tool to statically measure the
842 performance of machine code.
843 </para>
844 <indexterm zone="llvm llvm-mca">
845 <primary sortas="b-llvm-mca">llvm-mca</primary>
846 </indexterm>
847 </listitem>
848 </varlistentry>
849
850<!-- <varlistentry id="llvm-mcmarkup">
[b7a300f7]851 <term><command>llvm-mcmarkup</command></term>
852 <listitem>
853 <para>
854 is a parser for machine code markup.
855 </para>
856 <indexterm zone="llvm llvm-mcmarkup">
857 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
858 </indexterm>
859 </listitem>
[11b9fb83]860 </varlistentry>-->
[b7a300f7]861
862 <varlistentry id="llvm-modextract">
863 <term><command>llvm-modextract</command></term>
864 <listitem>
865 <para>
866 is a tool to extract one module from multimodule bitcode files.
867 </para>
868 <indexterm zone="llvm llvm-modextract">
869 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
870 </indexterm>
871 </listitem>
872 </varlistentry>
873
874 <varlistentry id="llvm-mt">
875 <term><command>llvm-mt</command></term>
876 <listitem>
877 <para>
878 is a tool to generate signed files and catalogs from a
879 side-by-side assembly manifest (used for Microsoft SDK).
880 </para>
881 <indexterm zone="llvm llvm-mt">
882 <primary sortas="b-llvm-mt">llvm-mt</primary>
883 </indexterm>
884 </listitem>
885 </varlistentry>
886
[abdc2e6]887 <varlistentry id="llvm-nm">
888 <term><command>llvm-nm</command></term>
889 <listitem>
890 <para>
891 is used to list <application>LLVM</application> bitcode
892 and object file's symbol table.
893 </para>
894 <indexterm zone="llvm llvm-nm">
895 <primary sortas="b-llvm-nm">llvm-nm</primary>
896 </indexterm>
897 </listitem>
898 </varlistentry>
[b3b7e36]899
[11b9fb83]900 <varlistentry id="llvm-objcopy">
901 <term><command>llvm-objcopy</command></term>
902 <listitem>
903 <para>
904 is LLVM's version of an objcopy tool.
905 </para>
906 <indexterm zone="llvm llvm-objcopy">
907 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
908 </indexterm>
909 </listitem>
910 </varlistentry>
911
[3349c8e]912 <varlistentry id="llvm-objdump">
913 <term><command>llvm-objdump</command></term>
914 <listitem>
915 <para>
916 is an <application>LLVM</application> object file dumper.
917 </para>
918 <indexterm zone="llvm llvm-objdump">
919 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
920 </indexterm>
921 </listitem>
922 </varlistentry>
923
[b7a300f7]924 <varlistentry id="llvm-opt-report">
925 <term><command>llvm-opt-report</command></term>
926 <listitem>
927 <para>
928 is a tool to generate an optimization report from YAML optimization
929 record files.
930 </para>
931 <indexterm zone="llvm llvm-opt-report">
932 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
933 </indexterm>
934 </listitem>
935 </varlistentry>
936
937 <varlistentry id="llvm-pdbutil">
938 <term><command>llvm-pdbutil</command></term>
[b3b7e36]939 <listitem>
940 <para>
[b7a300f7]941 is a PDB (Program Database) dumper. PDB is a Microsoft format.
[b3b7e36]942 </para>
[b7a300f7]943 <indexterm zone="llvm llvm-pdbutil">
944 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]945 </indexterm>
946 </listitem>
947 </varlistentry>
[3349c8e]948
949 <varlistentry id="llvm-profdata">
950 <term><command>llvm-profdata</command></term>
[abdc2e6]951 <listitem>
952 <para>
[3349c8e]953 is a small tool to manipulate and print profile data files.
[abdc2e6]954 </para>
[3349c8e]955 <indexterm zone="llvm llvm-profdata">
956 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]957 </indexterm>
958 </listitem>
[3349c8e]959 </varlistentry>
[abdc2e6]960
961 <varlistentry id="llvm-ranlib">
962 <term><command>llvm-ranlib</command></term>
963 <listitem>
964 <para>
[3fdc9b0]965 is used to generate an index for a <application>LLVM</application>
[abdc2e6]966 archive.
967 </para>
968 <indexterm zone="llvm llvm-ranlib">
969 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
970 </indexterm>
971 </listitem>
972 </varlistentry>
973
[11b9fb83]974 <varlistentry id="llvm-rc">
975 <term><command>llvm-rc</command></term>
976 <listitem>
977 <para>
978 is a platform-independent tool to compile resource scripts
979 into binary resource files.
980 </para>
981 <indexterm zone="llvm llvm-rc">
982 <primary sortas="b-llvm-rc">llvm-rc</primary>
983 </indexterm>
984 </listitem>
985 </varlistentry>
986
[3349c8e]987 <varlistentry id="llvm-readobj">
988 <term><command>llvm-readobj</command></term>
989 <listitem>
990 <para>
991 displays low-level format-specific information about object files.
992 </para>
993 <indexterm zone="llvm llvm-readobj">
994 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
995 </indexterm>
996 </listitem>
997 </varlistentry>
998
999 <varlistentry id="llvm-rtdyld">
1000 <term><command>llvm-rtdyld</command></term>
1001 <listitem>
1002 <para>
[3fdc9b0]1003 is the <application>LLVM</application> MC-JIT tool.
[3349c8e]1004 </para>
1005 <indexterm zone="llvm llvm-rtdyld">
1006 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1007 </indexterm>
1008 </listitem>
1009 </varlistentry>
1010
1011 <varlistentry id="llvm-size">
1012 <term><command>llvm-size</command></term>
1013 <listitem>
1014 <para>
[3fdc9b0]1015 is the <application>LLVM</application> object size dumper.
[3349c8e]1016 </para>
1017 <indexterm zone="llvm llvm-size">
1018 <primary sortas="b-llvm-size">llvm-size</primary>
1019 </indexterm>
1020 </listitem>
1021 </varlistentry>
1022
1023 <varlistentry id="llvm-split">
1024 <term><command>llvm-split</command></term>
1025 <listitem>
1026 <para>
[3fdc9b0]1027 is the <application>LLVM</application> module splitter.
[3349c8e]1028 </para>
1029 <indexterm zone="llvm llvm-split">
1030 <primary sortas="b-llvm-split">llvm-split</primary>
1031 </indexterm>
1032 </listitem>
1033 </varlistentry>
1034
[abdc2e6]1035 <varlistentry id="llvm-stress">
1036 <term><command>llvm-stress</command></term>
1037 <listitem>
1038 <para>
1039 is used to generate random
1040 <filename class="extension">.ll</filename> files.
1041 </para>
1042 <indexterm zone="llvm llvm-stress">
1043 <primary sortas="b-llvm-stress">llvm-stress</primary>
1044 </indexterm>
1045 </listitem>
1046 </varlistentry>
1047
[b7a300f7]1048 <varlistentry id="llvm-strings">
1049 <term><command>llvm-strings</command></term>
1050 <listitem>
1051 <para>
1052 print strings found in a binary (object file, executable, or
1053 archive library).
1054 </para>
1055 <indexterm zone="llvm llvm-strings">
1056 <primary sortas="b-llvm-strings">llvm-strings</primary>
1057 </indexterm>
1058 </listitem>
1059 </varlistentry>
1060
[3349c8e]1061 <varlistentry id="llvm-symbolizer">
1062 <term><command>llvm-symbolizer</command></term>
1063 <listitem>
1064 <para>
1065 converts adresses into source code locations.
1066 </para>
1067 <indexterm zone="llvm llvm-symbolizer">
1068 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1069 </indexterm>
1070 </listitem>
1071 </varlistentry>
1072
[abdc2e6]1073 <varlistentry id="llvm-tblgen">
1074 <term><command>llvm-tblgen</command></term>
1075 <listitem>
1076 <para>
1077 is the <application>LLVM</application> Target Description
1078 To C++ Code Generator.
1079 </para>
1080 <indexterm zone="llvm llvm-tblgen">
1081 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1082 </indexterm>
1083 </listitem>
1084 </varlistentry>
1085
[11b9fb83]1086 <varlistentry id="llvm-undname">
1087 <term><command>llvm-undname</command></term>
1088 <listitem>
1089 <para>
1090 is a tool to demangle names.
1091 </para>
1092 <indexterm zone="llvm llvm-undname">
1093 <primary sortas="b-llvm-undname">llvm-undname</primary>
1094 </indexterm>
1095 </listitem>
1096 </varlistentry>
1097
[b7a300f7]1098 <varlistentry id="llvm-xray">
1099 <term><command>llvm-xray</command></term>
1100 <listitem>
1101 <para>
1102 is an implementation of Google's XRay function call tracing system.
1103 </para>
1104 <indexterm zone="llvm llvm-xray">
1105 <primary sortas="b-llvm-xray">llvm-xray</primary>
1106 </indexterm>
1107 </listitem>
1108 </varlistentry>
1109
[39dd48b]1110 <varlistentry id="obj2yaml">
1111 <term><command>obj2yaml</command></term>
1112 <listitem>
1113 <para>
[b7a300f7]1114 takes an object file, and produces a YAML representation of the
[39dd48b]1115 file.
1116 </para>
1117 <indexterm zone="llvm obj2yaml">
1118 <primary sortas="b-obj2yaml">obj2yaml</primary>
1119 </indexterm>
1120 </listitem>
1121 </varlistentry>
1122
[abdc2e6]1123 <varlistentry id="opt">
1124 <term><command>opt</command></term>
1125 <listitem>
1126 <para>
1127 is the <application>LLVM</application> optimizer.
1128 </para>
1129 <indexterm zone="llvm opt">
1130 <primary sortas="b-opt">opt</primary>
1131 </indexterm>
1132 </listitem>
1133 </varlistentry>
1134
[3349c8e]1135 <varlistentry id="sancov">
1136 <term><command>sancov</command></term>
1137 <listitem>
1138 <para>
[3fdc9b0]1139 is the sanitizer coverage processing tool.
[3349c8e]1140 </para>
1141 <indexterm zone="llvm sancov">
1142 <primary sortas="b-sancov">sancov</primary>
1143 </indexterm>
1144 </listitem>
1145 </varlistentry>
1146
[b4c31a6]1147 <varlistentry id="sanstats">
1148 <term><command>sanstats</command></term>
1149 <listitem>
1150 <para>
1151 is the sanitizer statistics processing tool.
1152 </para>
1153 <indexterm zone="llvm sanstats">
1154 <primary sortas="b-sanstats">sanstats</primary>
1155 </indexterm>
1156 </listitem>
1157 </varlistentry>
1158
[70251fc]1159 <varlistentry id="scan-build">
1160 <term><command>scan-build</command></term>
1161 <listitem>
1162 <para>
1163 is a <application>Perl</application> script that invokes the
1164 <application>Clang</application> static analyzer.
1165 </para>
1166 <indexterm zone="llvm scan-build">
1167 <primary sortas="b-scan-build">scan-build</primary>
[39dd48b]1168 </indexterm>
1169 </listitem>
1170 </varlistentry>
1171
[3349c8e]1172 <varlistentry id="scan-view">
1173 <term><command>scan-view</command></term>
1174 <listitem>
1175 <para>
1176 is a viewer for <application>Clang</application> static analyzer
1177 results.
1178 </para>
1179 <indexterm zone="llvm scan-view">
1180 <primary sortas="b-scan-view">scan-view</primary>
1181 </indexterm>
1182 </listitem>
1183 </varlistentry>
1184
1185 <varlistentry id="verify-uselistorder">
1186 <term><command>verify-uselistorder</command></term>
1187 <listitem>
1188 <para>
1189 is the <application>LLVM</application> tool to verify use-list
1190 order.
1191 </para>
1192 <indexterm zone="llvm verify-uselistorder">
1193 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1194 </indexterm>
1195 </listitem>
1196 </varlistentry>
1197
[39dd48b]1198 <varlistentry id="yaml2obj">
1199 <term><command>yaml2obj</command></term>
1200 <listitem>
1201 <para>
1202 takes a YAML representation of an object file and converts it
[17b685f1]1203 to a binary file.
[39dd48b]1204 </para>
1205 <indexterm zone="llvm yaml2obj">
1206 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1207 </indexterm>
1208 </listitem>
1209 </varlistentry>
[3349c8e]1210<!--
[abdc2e6]1211 <varlistentry id="libllvm">
1212 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1213 <listitem>
1214 <para>
1215 contains the <application>LLVM</application> API functions.
1216 </para>
1217 <indexterm zone="llvm libllvm">
1218 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1219 </indexterm>
1220 </listitem>
1221 </varlistentry>
[3349c8e]1222
[abdc2e6]1223 <varlistentry id="libprofile_rt">
1224 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1225 <listitem>
1226 <para>
1227 is the C, C++ and Objective-C runtime library for
1228 <application>Clang</application>.
1229 </para>
1230 <indexterm zone="llvm libprofile_rt">
1231 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
[7b74537e]1232 </indexterm>
1233 </listitem>
[0f5ca44]1234 </varlistentry>-->
[7b74537e]1235
1236 </variablelist>
[abdc2e6]1237
[7b74537e]1238 </sect2>
1239
1240</sect1>
Note: See TracBrowser for help on using the repository browser.