source: general/prog/llvm.xml@ 986f53b9

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 986f53b9 was 986f53b9, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Update to llvm-10.0.0

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

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