source: general/prog/llvm.xml@ 82bdecf

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.0 9.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 82bdecf was 82bdecf, checked in by Bruce Dubbs <bdubbs@…>, 5 years ago

Tag Xorg and it's dependencies.
Some misc text tweaks.

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

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