source: general/prog/llvm.xml@ 693c4d1

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 693c4d1 was 693c4d1, checked in by Bruce Dubbs <bdubbs@…>, 5 years ago

Update to llvm-8.0.0

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

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