source: general/prog/llvm.xml@ 0d0f150

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.4 9.0 9.1 bdubbs/svn elogind 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 0d0f150 was 8e9b706, checked in by Bruce Dubbs <bdubbs@…>, 6 years ago

Update to v4l-utils-1.16.0.
Update to babl-0.1.58.
Update to highlight-3.46.

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

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