source: general/prog/llvm.xml@ d21c6551

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 d21c6551 was d21c6551, checked in by Douglas R. Reno <renodr@…>, 5 years ago

LLVM: Replace dependency on libyaml with PyYAML for yaml2obj

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

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