source: general/prog/llvm.xml@ 4f09d49

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 4f09d49 was 81210e4, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Update to llvm-9.0.1.

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