source: general/prog/llvm.xml@ d21c6551

10.0 10.1 11.0 11.1 11.2 9.0 9.1 lazarus plabs/python-mods qt5new trunk upgradedb xry111/intltool xry111/soup3 xry111/test-20220226
Last change on this file since d21c6551 was d21c6551, checked in by Douglas R. Reno <renodr@…>, 4 years ago

LLVM: Replace dependency on libyaml with PyYAML for yaml2obj

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

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