source: general/prog/llvm.xml@ e7d893b

elogind
Last change on this file since e7d893b was e7d893b, checked in by DJ Lucas <dj@…>, 5 years ago

Merge to HEAD 21602.

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

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