source: general/prog/llvm.xml@ c0f1ac2

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 c0f1ac2 was 935216e, checked in by Douglas R. Reno <renodr@…>, 5 years ago

Fix typo in LLVM

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

  • Property mode set to 100644
File size: 41.0 KB
RevLine 
[7b74537e]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
[563e0d6]7 <!ENTITY llvm-url "https://github.com/llvm/llvm-project/releases/download/llvmorg-&llvm-version;">
[11b9fb83]8 <!ENTITY llvm-majmin "7.0"> <!-- used in an explanation -->
[563e0d6]9
10 <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
[abdc2e6]11 <!ENTITY llvm-download-ftp " ">
[563e0d6]12 <!ENTITY llvm-md5sum "9a3b63df01c52556f7afb5617934e79e">
[693c4d1]13 <!ENTITY llvm-size "29 MB">
[563e0d6]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)">
[a6221fd]16
[563e0d6]17 <!ENTITY clang-download-http "&llvm-url;/cfe-&llvm-version;.src.tar.xz">
18 <!ENTITY clang-md5sum "28db72b57ca99307259773e4ac74a6d3">
[693c4d1]19 <!ENTITY clang-size "13 MB">
[a6221fd]20
[563e0d6]21 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
22 <!ENTITY compiler-rt-md5sum "c251e582862f9fcc880802f8f2920096">
[693c4d1]23 <!ENTITY compiler-rt-size "1.9 MB">
[7b74537e]24]>
25
[abdc2e6]26<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]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
[abdc2e6]43 <para>
[a6221fd]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").
[abdc2e6]51 </para>
[f36bebcd]52
[abdc2e6]53 <para>
[a6221fd]54 The optional <application>Clang</application> and <application>Compiler
[43d840ed]55 RT</application> packages provide new C, C++, Objective C and Objective
[a6221fd]56 C++ front-ends and runtime libraries for the
[9da4cc6f]57 <application>LLVM</application> and are required by some packages which
58 use <application>Rust</application>, for example
59 <application>firefox</application>.
[abdc2e6]60 </para>
[7b74537e]61
[82bdecf]62 &lfs90_checked;
[7b74537e]63
64 <bridgehead renderas="sect3">Package Information</bridgehead>
65 <itemizedlist spacing="compact">
66 <listitem>
[abdc2e6]67 <para>
68 Download (HTTP): <ulink url="&llvm-download-http;"/>
69 </para>
[7b74537e]70 </listitem>
71 <listitem>
[abdc2e6]72 <para>
73 Download (FTP): <ulink url="&llvm-download-ftp;"/>
74 </para>
[7b74537e]75 </listitem>
76 <listitem>
[abdc2e6]77 <para>
78 Download MD5 sum: &llvm-md5sum;
79 </para>
[7b74537e]80 </listitem>
81 <listitem>
[abdc2e6]82 <para>
83 Download size: &llvm-size;
84 </para>
[7b74537e]85 </listitem>
86 <listitem>
[abdc2e6]87 <para>
88 Estimated disk space required: &llvm-buildsize;
89 </para>
[7b74537e]90 </listitem>
91 <listitem>
[abdc2e6]92 <para>
93 Estimated build time: &llvm-time;
94 </para>
[7b74537e]95 </listitem>
96 </itemizedlist>
97
[abdc2e6]98 <bridgehead renderas="sect3">Optional Downloads</bridgehead>
[f36bebcd]99
[70251fc]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>
[1f44775e]137
[b7a300f7]138<!-- <itemizedlist spacing="compact">
[a6d167b9]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>
[b7a300f7]147-->
[7b74537e]148 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
149
[7b3f441]150 <!-- cmake is now required -->
151 <bridgehead renderas="sect4">Required</bridgehead>
152 <para role="required">
[7170000e]153 <xref linkend="cmake"/>
[f36bebcd]154 </para>
155
[7b74537e]156 <bridgehead renderas="sect4">Optional</bridgehead>
157 <para role="optional">
[abdc2e6]158 <xref linkend="doxygen"/>,
159 <xref linkend="graphviz"/>,
160 <xref linkend="libxml2"/>,
[7170000e]161 <xref linkend="python2"/>,
[2d98031c]162 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]163 <xref linkend="valgrind"/>,
[d21c6551]164 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]165 <xref linkend="zip"/>,
[c263b88]166 <ulink url="http://www.ocaml.org/">OCaml</ulink>,
167 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>,
[8f62346]168 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>, and
169 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]170 </para>
171
172 <para condition="html" role="usernotes">User Notes:
[abdc2e6]173 <ulink url="&blfs-wiki;/llvm"/>
174 </para>
[7b74537e]175 </sect2>
176
177 <sect2 role="installation">
178 <title>Installation of LLVM</title>
179
[abdc2e6]180 <para>
181 If you have downloaded the optional packages, install them into
182 the source tree by running the following commands:
183 </para>
[f36bebcd]184
[097fd436]185<screen><userinput>tar -xf ../cfe-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[563e0d6]186tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[f36bebcd]187
[7e16699b]188mv tools/cfe-&llvm-version;.src tools/clang &amp;&amp;
[563e0d6]189mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[b7a300f7]190<!--
191patch -Np1 -d projects/compiler-rt &lt; ../compiler-rt-4.0.1-glibc-2.26-1.patch</userinput></screen>-->
[bd4f0143]192
[abdc2e6]193 <para>
194 Install <application>LLVM</application> by running the following
195 commands:
196 </para>
197
[3349c8e]198<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]199cd build &amp;&amp;
200
[8e9b706]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 \
[b3f053c5]207 -DLLVM_ENABLE_RTTI=ON \
[8e9b706]208 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
209 -DLLVM_BUILD_TESTS=ON \
210 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]211ninja</userinput></screen>
[7b74537e]212
[a42c273]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
[abdc2e6]232 <para>
[11b9fb83]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. -->
[18a65e61]236 To test the results, issue: <command>ninja check-all</command>. Tests are
[11b9fb83]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.)
[563e0d6]244 Note that the Sanitizer based tests (377 of more than 35000 tests run)
[693c4d1]245 are known to fail.
[11b9fb83]246
[abdc2e6]247 </para>
[7b74537e]248
[abdc2e6]249 <para>
250 Now, as the <systemitem class="username">root</systemitem> user:
251 </para>
[7b74537e]252
[18a65e61]253<screen role="root"><userinput>ninja install</userinput></screen>
254
255 <para>
[a42c273]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:
[3349c8e]259 </para>
260
[a42c273]261<screen role="root"
262 remap="doc"><userinput>install -v -m644 docs/man/* /usr/share/man/man1 &amp;&amp;
[3349c8e]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>
[7b74537e]265
[abdc2e6]266 <para>
[a42c273]267 If you have built the clang documentation, it can be installed in the
268 same way (again as the
[3349c8e]269 <systemitem class="username">root</systemitem> user):
[abdc2e6]270 </para>
271
[a42c273]272<screen role="root"
273 remap="doc"><userinput>install -v -m644 tools/clang/docs/man/* /usr/share/man/man1 &amp;&amp;
[3349c8e]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>
[7b74537e]276
277 </sect2>
[abdc2e6]278
[5889b252]279 <sect2 role="commands">
280 <title>Command Explanations</title>
281
282 <para>
[f1d7196]283 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch enables
[5889b252]284 <application>LLVM</application> to use
[ce8983d8]285 <application>libffi</application>.
[5889b252]286 </para>
287
[4e845a4]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
[5889b252]294 <para>
[3349c8e]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.
[5889b252]299 </para>
300
[b3b7e36]301 <para>
[8e9b706]302 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
[3349c8e]303 switch enables building for the same target as the host, and also for
[8e9b706]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
[3349c8e]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.
[b3b7e36]309 </para>
310
[5889b252]311 <para>
[bb0652ca]312 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]313 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
314 linking the tools against the shared library instead of the static ones.
[bb0652ca]315 It also slightly reduces their size and also ensures that llvm-config
316 will correctly use libLLVM-&llvm-majmin;.so.
[4e845a4]317 </para>
318
[b3f053c5]319 <para>
[935216e]320 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: Used to build LLVM with
[b3f053c5]321 run-time type information. This is required for building
322 <xref linkend="mesa"/>.
323 </para>
324
[4e845a4]325 <para>
326 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]327 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
328 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]329 <application>LLVM</application> libraries (about 60) as shared
330 libraries instead of static.
[3349c8e]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.
[5889b252]338 </para>
339
340 </sect2>
341
[7b74537e]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>
[abdc2e6]351 <seg>
[3349c8e]352 bugpoint, c-index-test, clang, clang++ (symlinks to
[3fdc9b0]353 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
[11b9fb83]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,
[b7a300f7]367 obj2yaml, opt, sancov, sanstats, scan-build, scan-view,
368 verify-uselistorder, and yaml2obj
[abdc2e6]369 </seg>
370 <seg>
[693c4d1]371 libLLVM.so,
372 libLLVM*.a (75 libraries),
373 libLTO.so,
374 libclang.so,
375 and libclang*.a (63 libraries)
[abdc2e6]376 </seg>
377 <seg>
[a6221fd]378 /usr/include/{clang,clang-c,llvm,llvm-c},
[b7a300f7]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;}
[abdc2e6]382 </seg>
[7b74537e]383 </seglistitem>
384 </segmentedlist>
[abdc2e6]385
[7b74537e]386 <variablelist>
387 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
388 <?dbfo list-presentation="list"?>
389 <?dbhtml list-presentation="table"?>
390
[abdc2e6]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
[b7a300f7]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
[abdc2e6]415 <varlistentry id="clang">
416 <term><command>clang</command></term>
[7b74537e]417 <listitem>
[abdc2e6]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>
[7b74537e]424 </indexterm>
425 </listitem>
426 </varlistentry>
427
[b7a300f7]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
[3349c8e]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
[11b9fb83]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
[b7a300f7]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
[11b9fb83]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
[b7a300f7]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
[11b9fb83]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
[b7a300f7]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
[11b9fb83]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
[abdc2e6]554 <varlistentry id="llc">
555 <term><command>llc</command></term>
[7b74537e]556 <listitem>
[abdc2e6]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
[b7a300f7]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
[11b9fb83]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
[abdc2e6]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
[3349c8e]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
[b7a300f7]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
[b3b7e36]689 <varlistentry id="llvm-cxxdump">
690 <term><command>llvm-cxxdump</command></term>
691 <listitem>
692 <para>
[3fdc9b0]693 is used as a C++ ABI Data Dumper.
[b3b7e36]694 </para>
695 <indexterm zone="llvm llvm-cxxdump">
696 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
697 </indexterm>
698 </listitem>
699 </varlistentry>
700
[b7a300f7]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
[abdc2e6]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
[3349c8e]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>
[3fdc9b0]754 merges split DWARF files.
[3349c8e]755 </para>
756 <indexterm zone="llvm llvm-dwp">
757 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
758 </indexterm>
759 </listitem>
760 </varlistentry>
761
[11b9fb83]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
[abdc2e6]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
[3349c8e]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
[b7a300f7]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
[3349c8e]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
[11b9fb83]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">
[b7a300f7]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>
[11b9fb83]861 </varlistentry>-->
[b7a300f7]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
[abdc2e6]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>
[b3b7e36]900
[11b9fb83]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
[3349c8e]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
[b7a300f7]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>
[b3b7e36]940 <listitem>
941 <para>
[b7a300f7]942 is a PDB (Program Database) dumper. PDB is a Microsoft format.
[b3b7e36]943 </para>
[b7a300f7]944 <indexterm zone="llvm llvm-pdbutil">
945 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]946 </indexterm>
947 </listitem>
948 </varlistentry>
[3349c8e]949
950 <varlistentry id="llvm-profdata">
951 <term><command>llvm-profdata</command></term>
[abdc2e6]952 <listitem>
953 <para>
[3349c8e]954 is a small tool to manipulate and print profile data files.
[abdc2e6]955 </para>
[3349c8e]956 <indexterm zone="llvm llvm-profdata">
957 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]958 </indexterm>
959 </listitem>
[3349c8e]960 </varlistentry>
[abdc2e6]961
962 <varlistentry id="llvm-ranlib">
963 <term><command>llvm-ranlib</command></term>
964 <listitem>
965 <para>
[3fdc9b0]966 is used to generate an index for a <application>LLVM</application>
[abdc2e6]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
[11b9fb83]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
[3349c8e]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>
[3fdc9b0]1004 is the <application>LLVM</application> MC-JIT tool.
[3349c8e]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>
[3fdc9b0]1016 is the <application>LLVM</application> object size dumper.
[3349c8e]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>
[3fdc9b0]1028 is the <application>LLVM</application> module splitter.
[3349c8e]1029 </para>
1030 <indexterm zone="llvm llvm-split">
1031 <primary sortas="b-llvm-split">llvm-split</primary>
1032 </indexterm>
1033 </listitem>
1034 </varlistentry>
1035
[abdc2e6]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
[b7a300f7]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
[3349c8e]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
[abdc2e6]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
[11b9fb83]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
[b7a300f7]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
[39dd48b]1111 <varlistentry id="obj2yaml">
1112 <term><command>obj2yaml</command></term>
1113 <listitem>
1114 <para>
[b7a300f7]1115 takes an object file, and produces a YAML representation of the
[39dd48b]1116 file.
1117 </para>
1118 <indexterm zone="llvm obj2yaml">
1119 <primary sortas="b-obj2yaml">obj2yaml</primary>
1120 </indexterm>
1121 </listitem>
1122 </varlistentry>
1123
[abdc2e6]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
[3349c8e]1136 <varlistentry id="sancov">
1137 <term><command>sancov</command></term>
1138 <listitem>
1139 <para>
[3fdc9b0]1140 is the sanitizer coverage processing tool.
[3349c8e]1141 </para>
1142 <indexterm zone="llvm sancov">
1143 <primary sortas="b-sancov">sancov</primary>
1144 </indexterm>
1145 </listitem>
1146 </varlistentry>
1147
[b4c31a6]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
[70251fc]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>
[39dd48b]1169 </indexterm>
1170 </listitem>
1171 </varlistentry>
1172
[3349c8e]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
[39dd48b]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
[17b685f1]1204 to a binary file.
[39dd48b]1205 </para>
1206 <indexterm zone="llvm yaml2obj">
1207 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1208 </indexterm>
1209 </listitem>
1210 </varlistentry>
[3349c8e]1211<!--
[abdc2e6]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>
[3349c8e]1223
[abdc2e6]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>
[7b74537e]1233 </indexterm>
1234 </listitem>
[0f5ca44]1235 </varlistentry>-->
[7b74537e]1236
1237 </variablelist>
[abdc2e6]1238
[7b74537e]1239 </sect2>
1240
1241</sect1>
Note: See TracBrowser for help on using the repository browser.