source: general/prog/llvm.xml@ 986f53b9

10.0 10.1 11.0 11.1 lazarus qt5new trunk upgradedb xry111/intltool xry111/test-20220226
Last change on this file since 986f53b9 was 986f53b9, checked in by Bruce Dubbs <bdubbs@…>, 2 years ago

Update to llvm-10.0.0

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