source: general/prog/llvm.xml@ 81210e4

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 81210e4 was 81210e4, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Update to llvm-9.0.1.

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