source: general/prog/llvm.xml@ c263b88

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.0 9.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 c263b88 was c263b88, checked in by Ken Moffat <ken@…>, 5 years ago

Add external link to recommonmark (Python module) which is now needed to build the LLVM docs).

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