source: general/prog/llvm.xml@ 8c415ea

11.1 11.2 11.3 12.0 12.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 xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 8c415ea was 8c415ea, checked in by Douglas R. Reno <renodr@…>, 2 years ago

Tags

  • Property mode set to 100644
File size: 50.4 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;">
8
9 <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
[abdc2e6]10 <!ENTITY llvm-download-ftp " ">
[24b16275]11 <!ENTITY llvm-md5sum "4ca3266b539ccec41cb5094c510221a1">
[3e8c126]12 <!ENTITY llvm-size "43 MB">
[05f440b]13 <!ENTITY llvm-buildsize "2.6 GB (1 GB installed, with documentation, add 16 GB for tests)">
14 <!ENTITY llvm-time "30 SBU (on 4 CPU cores, with documentation, add 18 SBU for tests)">
[a6221fd]15
[81210e4]16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
[24b16275]17 <!ENTITY clang-md5sum "89017bafd256ac5ad766920d15d8deba">
18 <!ENTITY clang-size "18 MB">
[a6221fd]19
[563e0d6]20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
[24b16275]21 <!ENTITY compiler-rt-md5sum "f534ab8fb371ec1a8a22a6fa5809be46">
[3e8c126]22 <!ENTITY compiler-rt-size "2.2 MB">
[7b74537e]23]>
24
[abdc2e6]25<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]26 <?dbhtml filename="llvm.html" ?>
27
28 <sect1info>
29 <date>$Date$</date>
30 </sect1info>
31
32 <title>LLVM-&llvm-version;</title>
33
34 <indexterm zone="llvm">
35 <primary sortas="a-LLVM">LLVM</primary>
36 </indexterm>
37
38 <sect2 role="package">
39 <title>Introduction to LLVM</title>
40
[abdc2e6]41 <para>
[a6221fd]42 The <application>LLVM</application> package contains a collection of
43 modular and reusable compiler and toolchain technologies. The Low Level
44 Virtual Machine (LLVM) Core libraries provide a modern source and
45 target-independent optimizer, along with code generation support for many
46 popular CPUs (as well as some less common ones!). These libraries are
47 built around a well specified code representation known as the LLVM
48 intermediate representation ("LLVM IR").
[abdc2e6]49 </para>
[f36bebcd]50
[abdc2e6]51 <para>
[74762a5]52 <application>Clang</application> provides new C, C++, Objective C
53 and Objective C++ front-ends for <application>LLVM</application> and is
54 required by some desktop packages such as <application>firefox</application>
55 and for <application>rust</application> if that is built using the system
56 <application>LLVM</application>.
57 </para>
58
59 <para>
60 The <application>Compiler RT</application> package provides
61 runtime sanitizer and profiling libraries for developers who use
62 <application>Clang</application> and <application>LLVM</application>.
[abdc2e6]63 </para>
[7b74537e]64
[8c415ea]65 &lfs111_checked;
[7b74537e]66
67 <bridgehead renderas="sect3">Package Information</bridgehead>
68 <itemizedlist spacing="compact">
69 <listitem>
[abdc2e6]70 <para>
71 Download (HTTP): <ulink url="&llvm-download-http;"/>
72 </para>
[7b74537e]73 </listitem>
74 <listitem>
[abdc2e6]75 <para>
76 Download (FTP): <ulink url="&llvm-download-ftp;"/>
77 </para>
[7b74537e]78 </listitem>
79 <listitem>
[abdc2e6]80 <para>
81 Download MD5 sum: &llvm-md5sum;
82 </para>
[7b74537e]83 </listitem>
84 <listitem>
[abdc2e6]85 <para>
86 Download size: &llvm-size;
87 </para>
[7b74537e]88 </listitem>
89 <listitem>
[abdc2e6]90 <para>
91 Estimated disk space required: &llvm-buildsize;
92 </para>
[7b74537e]93 </listitem>
94 <listitem>
[abdc2e6]95 <para>
96 Estimated build time: &llvm-time;
97 </para>
[7b74537e]98 </listitem>
99 </itemizedlist>
100
[74762a5]101 <bridgehead renderas="sect3">Recommended Download</bridgehead>
102 <bridgehead role="recommended" renderas="sect4">Clang</bridgehead>
[70251fc]103 <itemizedlist spacing="compact">
104 <listitem>
105 <para>
106 Download: <ulink url="&clang-download-http;"/>
107 </para>
108 </listitem>
109 <listitem>
110 <para>
111 Download MD5 sum: &clang-md5sum;
112 </para>
113 </listitem>
114 <listitem>
115 <para>
116 Download size: &clang-size;
117 </para>
118 </listitem>
119 </itemizedlist>
120
[74762a5]121 <bridgehead renderas="sect3">Optional Download</bridgehead>
122 <bridgehead role="optional" renderas="sect4">Compiler RT</bridgehead>
[70251fc]123 <itemizedlist spacing="compact">
124 <listitem>
125 <para>
126 Download: <ulink url="&compiler-rt-download-http;"/>
127 </para>
128 </listitem>
129 <listitem>
130 <para>
131 Download MD5 sum: &compiler-rt-md5sum;
132 </para>
133 </listitem>
134 <listitem>
135 <para>
136 Download size: &compiler-rt-size;
137 </para>
138 </listitem>
139 </itemizedlist>
[7863cf6]140<!--
[b94b5b5]141 <itemizedlist spacing="compact">
[a6d167b9]142 <listitem>
143 <para>
144 Optional patch:
[b94b5b5]145 <ulink url="&patch-root;/llvm-&llvm-version;-compiler_rt_buildfix-1.patch"/>
[a6d167b9]146 (required if using compiler-rt)
147 </para>
148 </listitem>
149 </itemizedlist>
[7863cf6]150-->
[7b74537e]151 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
152
[7b3f441]153 <bridgehead renderas="sect4">Required</bridgehead>
154 <para role="required">
[2ee8145]155 <xref linkend="cmake"/>
[f36bebcd]156 </para>
157
[7b74537e]158 <bridgehead renderas="sect4">Optional</bridgehead>
159 <para role="optional">
[abdc2e6]160 <xref linkend="doxygen"/>,
[2ee8145]161 <xref linkend="git"/>,
[abdc2e6]162 <xref linkend="graphviz"/>,
163 <xref linkend="libxml2"/>,
[c5e3c1c]164 <xref linkend="pygments"/>,
[a96b7ae]165 <xref linkend="rsync"/> (for tests),
[2d98031c]166 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]167 <xref linkend="valgrind"/>,
[d21c6551]168 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]169 <xref linkend="zip"/>,
[11eb3ae5]170 <ulink url="https://ocaml.org/">OCaml</ulink>,
[a96b7ae]171 <ulink url="https://pypi.org/project/psutil/">psutil</ulink>,
[c263b88]172 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>,
[8f62346]173 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>, and
174 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]175 </para>
176
177 <para condition="html" role="usernotes">User Notes:
[abdc2e6]178 <ulink url="&blfs-wiki;/llvm"/>
179 </para>
[7b74537e]180 </sect2>
181
182 <sect2 role="installation">
183 <title>Installation of LLVM</title>
184
[abdc2e6]185 <para>
[74762a5]186 Install <application>clang</application> into
[abdc2e6]187 the source tree by running the following commands:
188 </para>
[f36bebcd]189
[74762a5]190<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[005af62c]191mv tools/clang-&llvm-version;.src tools/clang</userinput></screen>
[74762a5]192
193 <para>
194 If you have downloaded <application>compiler-rt</application>,
195 install it into the source tree by running the following commands:
196 </para>
[f36bebcd]197
[74762a5]198<screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[563e0d6]199mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[bd4f0143]200
[bf5fb94]201 <para>
202 There are many Python scripts in this package which use
203 <command>/usr/bin/env python</command> to access the system Python
204 which on LFS is <xref linkend="python3"/>. Use the following comand
205 to fix these scripts:
206 </para>
207
208<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
[7863cf6]209<!--
[b94b5b5]210 <para>
211 If you have downloaded <application>compiler-rt</application>,
212 fix building it with Linux-5.13.0 by using the following command:
213 </para>
214
215<screen><userinput remap="pre">patch -Np1 -i ../llvm-&llvm-version;-compiler_rt_buildfix-1.patch</userinput></screen>
[7863cf6]216-->
[abdc2e6]217 <para>
218 Install <application>LLVM</application> by running the following
219 commands:
220 </para>
221
[3349c8e]222<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]223cd build &amp;&amp;
224
[8e9b706]225CC=gcc CXX=g++ \
226cmake -DCMAKE_INSTALL_PREFIX=/usr \
227 -DLLVM_ENABLE_FFI=ON \
228 -DCMAKE_BUILD_TYPE=Release \
229 -DLLVM_BUILD_LLVM_DYLIB=ON \
230 -DLLVM_LINK_LLVM_DYLIB=ON \
[b3f053c5]231 -DLLVM_ENABLE_RTTI=ON \
[8e9b706]232 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
[76bec58]233 -DLLVM_BINUTILS_INCDIR=/usr/include \
[8e9b706]234 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]235ninja</userinput></screen>
[7b74537e]236
[a42c273]237 <para>
238 If you have installed <application>Sphinx</application> and
239 <application>recommonmark</application> and wish
240 to generate the html documentation and manual pages, issue the following
241 commands:
242 </para>
243
[bf5fb94]244<screen remap="doc"><userinput>cmake -DLLVM_BUILD_DOCS=ON \
245 -DLLVM_ENABLE_SPHINX=ON \
[a42c273]246 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
247 -Wno-dev -G Ninja .. &amp;&amp;
248ninja docs-llvm-html docs-llvm-man</userinput></screen>
249
250 <para>
[74762a5]251 The clang documentation can be built too:
[a42c273]252 </para>
253
254<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
255
[abdc2e6]256 <para>
[11b9fb83]257 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
258 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
259 are used by a couple of the link-static tests. -->
[18a65e61]260 To test the results, issue: <command>ninja check-all</command>. Tests are
[11b9fb83]261 built with all <emphasis>available</emphasis> cores, but run using the number
262 of <emphasis>online</emphasis> processors. (The difference is that available
263 cores can be limited using <command>taskset</command>, but taking them offline
264 requires echoing 0 to <filename
265 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
266 by the <systemitem class="username">root</systemitem> user and makes them
267 temporarily unusable by all jobs on the machine.)
[3e8c126]268 Note that a few of the compiler-rt Sanitizer based tests (13 of more than 59000
[599c6d0]269 tests run) are known to fail. Some of the LLVM-Unit IR tests are known to
270 fail as well.
[abdc2e6]271 </para>
[7b74537e]272
[abdc2e6]273 <para>
274 Now, as the <systemitem class="username">root</systemitem> user:
275 </para>
[7b74537e]276
[18a65e61]277<screen role="root"><userinput>ninja install</userinput></screen>
[3e8c126]278<!-- as of version 13.0.0, the install process seems to install the html
279 documentation and the manual pages. The llvm html documentation
280 is installed into /usr/share/doc/llvm, while the clang html documentation
281 is installed into /usr/doc/clang. So we have just to move it. -->
[18a65e61]282 <para>
[7975c68a]283 If you have built the llvm documentation, it has been installed
[3e8c126]284 by the above command, but it needs to be moved. As the
285 <systemitem class="username">root</systemitem> user:
[3349c8e]286 </para>
287
[a42c273]288<screen role="root"
[7975c68a]289 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
[3e8c126]290mv -v /usr/share/doc/llvm/html /usr/share/doc/llvm-&llvm-version;/llvm-html &amp;&amp;
291rmdir -v /usr/share/doc/llvm</userinput></screen>
[7b74537e]292
[abdc2e6]293 <para>
[3e8c126]294 If you have built the clang documentation, it has been installed, but
295 needs to be moved too. Again as the
296 <systemitem class="username">root</systemitem> user:
[abdc2e6]297 </para>
298
[a42c273]299<screen role="root"
[7975c68a]300 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
[3e8c126]301mv -v /usr/share/doc/clang/html /usr/share/doc/llvm-&llvm-version;/clang-html &amp;&amp;
302rmdir -v /usr/share/doc/clang</userinput></screen>
[7b74537e]303
304 </sect2>
[abdc2e6]305
[5889b252]306 <sect2 role="commands">
307 <title>Command Explanations</title>
308
309 <para>
[599c6d0]310 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch allows
[5889b252]311 <application>LLVM</application> to use
[ce8983d8]312 <application>libffi</application>.
[5889b252]313 </para>
314
[4e845a4]315 <para>
[599c6d0]316 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: This switch builds
317 the libraries as static and links all of them into an unique shared one.
318 This is the recommended way of building a shared library.
[4e845a4]319 </para>
320
[5889b252]321 <para>
[3349c8e]322 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
323 compiler optimizations in order to speed up the code and reduce its size.
[8558044]324 It also disables some compile checks which are not necessary on a
[11eb3ae5]325 production system.
[5889b252]326 </para>
327
[b3b7e36]328 <para>
[8e9b706]329 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
[3349c8e]330 switch enables building for the same target as the host, and also for
[8e9b706]331 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
[599c6d0]332 target is required to build <xref linkend="v4l-utils"/>. The Default is
333 all of the targets. You can use a semicolon separated list. Valid targets
[8558044]334 are: host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore,
[599c6d0]335 M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend, or all.
[b3b7e36]336 </para>
337
[5889b252]338 <para>
[bb0652ca]339 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]340 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
341 linking the tools against the shared library instead of the static ones.
[bb0652ca]342 It also slightly reduces their size and also ensures that llvm-config
[125a8d3]343 will correctly use libLLVM-&llvm-majmin-version;.so.
[4e845a4]344 </para>
345
[b3f053c5]346 <para>
[8558044]347 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: This switch is used to
348 build LLVM with run-time type information. This is required for building
[b3f053c5]349 <xref linkend="mesa"/>.
350 </para>
351
[76bec58]352 <para>
[599c6d0]353 <parameter>-DLLVM_BINUTILS_INCDIR=/usr/include</parameter>: This switch
[8558044]354 is used to tell the build system the location of binutils headers,
[599c6d0]355 which were installed in LFS. This allows the building of
[76bec58]356 <filename class="libraryfile">LLVMgold.so</filename>, which is needed
357 for building programs with <command>clang</command> and Link Time
358 Optimization (LTO).
359 </para>
360
[4e845a4]361 <para>
362 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]363 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
364 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]365 <application>LLVM</application> libraries (about 60) as shared
366 libraries instead of static.
[3349c8e]367 </para>
368
369 <para>
370 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
371 browsable HTML documentation if you have installed <xref
372 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
373 afterwards, and install the generated documentation manually.
[5889b252]374 </para>
375
376 </sect2>
377
[7b74537e]378 <sect2 role="content">
379 <title>Contents</title>
380
381 <segmentedlist>
382 <segtitle>Installed Programs</segtitle>
383 <segtitle>Installed Libraries</segtitle>
384 <segtitle>Installed Directories</segtitle>
385
386 <seglistitem>
[abdc2e6]387 <seg>
[3349c8e]388 bugpoint, c-index-test, clang, clang++ (symlinks to
[3fdc9b0]389 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
[bf5fb94]390 clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format,
[8558044]391 clang-offload-bundler, clang-offload-wrapper,
[3e8c126]392 clang-refactor, clang-rename, clang-repl, clang-scan-deps,
[8558044]393 diagtool, dsymutil, git-clang-format, hmaptool, llc, lli,
[3e8c126]394 llvm-addr2line (symlink to llvm-symbolizer),
395 llvm-ar, llvm-as, llvm-bcanalyzer,
[8558044]396 llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat,
397 llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres,
[11eb3ae5]398 llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap,
[11b9fb83]399 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump,
[3e8c126]400 llvm-dwp, llvm-exegenesis, llvm-extract, llvm-gsymutil, llvm-ifs,
[11eb3ae5]401 llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
[8558044]402 llvm-lib (symlink to llvm-ar), llvm-libtool-darwin, llvm-link,
403 llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml,
[599c6d0]404 llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump,
[3e8c126]405 llvm-opt-report, llvm-otool (symlink to llv-objdump),
406 llvm-pdbutil, llvm-profdata, llvm-profgen,
[8558044]407 llvm-ranlib (symlink to llvm-ar), llvm-rc,
408 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce,
[3e8c126]409 llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress,
410 llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer,
411 llvm-tapi-diff, llvm-tblgen, llvm-undname, llvm-windres (symlink to
412 llvm-rc, llvm-xray, opt, sancov, sanstats, scan-build,
[599c6d0]413 scan-view, split-file, and verify-uselistorder
[abdc2e6]414 </seg>
415 <seg>
[8558044]416 libLLVM.so,
[3e8c126]417 libLLVM*.a (89 libraries),
[8558044]418 libLTO.so,
419 libRemarks.so,
[693c4d1]420 libclang.so,
[599c6d0]421 libclang-cpp.so,
[3e8c126]422 libclang*.a (38 libraries),
[76bec58]423 and LLVMgold.so
[abdc2e6]424 </seg>
425 <seg>
[a6221fd]426 /usr/include/{clang,clang-c,llvm,llvm-c},
[3e8c126]427 /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild},
[b7a300f7]428 /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
[11eb3ae5]429 /usr/share/doc/llvm-&llvm-version;
[abdc2e6]430 </seg>
[7b74537e]431 </seglistitem>
432 </segmentedlist>
[abdc2e6]433
[7b74537e]434 <variablelist>
435 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
436 <?dbfo list-presentation="list"?>
437 <?dbhtml list-presentation="table"?>
438
[abdc2e6]439 <varlistentry id="bugpoint">
440 <term><command>bugpoint</command></term>
441 <listitem>
442 <para>
[4c24eb0a]443 is the automatic test case reduction tool
[abdc2e6]444 </para>
445 <indexterm zone="llvm bugpoint">
446 <primary sortas="b-bugpoint">bugpoint</primary>
447 </indexterm>
448 </listitem>
449 </varlistentry>
450
[b7a300f7]451 <varlistentry id="c-index-test">
452 <term><command>c-index-test</command></term>
453 <listitem>
454 <para>
[4c24eb0a]455 is used to test the libclang API and demonstrate its usage
[b7a300f7]456 </para>
457 <indexterm zone="llvm c-index-test">
458 <primary sortas="b-c-index-test">c-index-test</primary>
459 </indexterm>
460 </listitem>
461 </varlistentry>
462
[abdc2e6]463 <varlistentry id="clang">
464 <term><command>clang</command></term>
[7b74537e]465 <listitem>
[abdc2e6]466 <para>
467 is the <application>Clang</application> C, C++,
[4c24eb0a]468 and Objective-C compiler
[abdc2e6]469 </para>
470 <indexterm zone="llvm clang">
471 <primary sortas="b-clang">clang</primary>
[7b74537e]472 </indexterm>
473 </listitem>
474 </varlistentry>
475
[b7a300f7]476 <varlistentry id="clang-check">
477 <term><command>clang-check</command></term>
478 <listitem>
479 <para>
480 is a tool to perform static code analysis and display Abstract
[4c24eb0a]481 Syntax Trees (AST)
[b7a300f7]482 </para>
483 <indexterm zone="llvm clang-check">
484 <primary sortas="b-clang-check">clang-check</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
[11eb3ae5]489 <varlistentry id="clang-extdef-mapping">
490 <term><command>clang-extdef-mapping</command></term>
491 <listitem>
492 <para>
493 is a tool to collect the USR name and location of external
[4c24eb0a]494 definitions in a source file
[11eb3ae5]495 </para>
496 <indexterm zone="llvm clang-extdef-mapping">
497 <primary sortas="b-clang-extdef-mapping">clang-extdef-mapping</primary>
498 </indexterm>
499 </listitem>
500 </varlistentry>
501
[3349c8e]502 <varlistentry id="clang-format">
503 <term><command>clang-format</command></term>
504 <listitem>
505 <para>
506 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
[4c24eb0a]507 code
[3349c8e]508 </para>
509 <indexterm zone="llvm clang-format">
510 <primary sortas="b-clang-format">clang-format</primary>
511 </indexterm>
512 </listitem>
513 </varlistentry>
514
[11eb3ae5]515 <!--
[11b9fb83]516 <varlistentry id="clang-func-mapping">
517 <term><command>clang-func-mapping</command></term>
518 <listitem>
519 <para>
520 collects the name and location of all function definitions in the
521 source files.
522 </para>
523 <indexterm zone="llvm clang-func-mapping">
524 <primary sortas="b-clang-func-mapping">clang-func-mapping</primary>
525 </indexterm>
526 </listitem>
527 </varlistentry>
[11eb3ae5]528-->
[b7a300f7]529 <varlistentry id="clang-offload-bundler">
530 <term><command>clang-offload-bundler</command></term>
531 <listitem>
532 <para>
[246a7c53]533 is a tool to bundle/unbundle OpenMP offloaded files associated with
[4c24eb0a]534 a common source file
[b7a300f7]535 </para>
536 <indexterm zone="llvm clang-offload-bundler">
537 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
538 </indexterm>
539 </listitem>
540 </varlistentry>
541
[11eb3ae5]542 <varlistentry id="clang-offload-wrapper">
[246a7c53]543 <term><command>clang-offload-wrapper</command></term>
[11eb3ae5]544 <listitem>
545 <para>
[4c24eb0a]546 is a tool to create wrapper bitcode for offload target binaries
[11eb3ae5]547 </para>
548 <indexterm zone="llvm clang-offload-wrapper">
549 <primary sortas="b-clang-offload-wrapper">clang-offload-wrapper</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
553
[11b9fb83]554 <varlistentry id="clang-refactor">
555 <term><command>clang-refactor</command></term>
556 <listitem>
557 <para>
[4c24eb0a]558 is a Clang-based refactoring tool for C, C++ and Objective-C
[11b9fb83]559 </para>
560 <indexterm zone="llvm clang-refactor">
561 <primary sortas="b-clang-refactor">clang-refactor</primary>
562 </indexterm>
563 </listitem>
564 </varlistentry>
565
[b7a300f7]566 <varlistentry id="clang-rename">
567 <term><command>clang-rename</command></term>
568 <listitem>
569 <para>
[4c24eb0a]570 is a tool to rename symbols in C/C++ programs
[b7a300f7]571 </para>
572 <indexterm zone="llvm clang-rename">
573 <primary sortas="b-clang-rename">clang-rename</primary>
574 </indexterm>
575 </listitem>
576 </varlistentry>
577
[11eb3ae5]578 <varlistentry id="clang-scan-deps">
579 <term><command>clang-scan-deps</command></term>
580 <listitem>
581 <para>
[4c24eb0a]582 is a tool to scan for dependencies in a source file
[11eb3ae5]583 </para>
584 <indexterm zone="llvm clang-scan-deps">
585 <primary sortas="b-clang-scan-deps">clang-scan-deps</primary>
586 </indexterm>
587 </listitem>
588 </varlistentry>
589
[11b9fb83]590 <varlistentry id="diagtool">
591 <term><command>diagtool</command></term>
592 <listitem>
593 <para>
[4c24eb0a]594 is a combination of tools for dealing with diagnostics in clang
[11b9fb83]595 </para>
596 <indexterm zone="llvm diagtool">
597 <primary sortas="b-diagtool">diagtool</primary>
598 </indexterm>
599 </listitem>
600 </varlistentry>
601
602 <varlistentry id="dsymutil">
603 <term><command>dsymutil</command></term>
604 <listitem>
605 <para>
606 is a tool used to manipulate archived DWARF debug symbol files,
[4c24eb0a]607 compatible with the Darwin command <command>dsymutil</command>
[11b9fb83]608 </para>
609 <indexterm zone="llvm dsymutil">
610 <primary sortas="b-dsymutil">dsymutil</primary>
611 </indexterm>
612 </listitem>
613 </varlistentry>
614
[b7a300f7]615 <varlistentry id="git-clang-format">
616 <term><command>git-clang-format</command></term>
617 <listitem>
618 <para>
619 runs clang-format on git generated patches (requires
620 <xref linkend="git"/>)
621 </para>
622 <indexterm zone="llvm git-clang-format">
623 <primary sortas="b-git-clang-format">git-clang-format</primary>
624 </indexterm>
625 </listitem>
626 </varlistentry>
627
[11b9fb83]628 <varlistentry id="hmaptool">
629 <term><command>hmaptool</command></term>
630 <listitem>
631 <para>
[4c24eb0a]632 is a Python tool to dump and construct header maps
[11b9fb83]633 </para>
634 <indexterm zone="llvm hmaptool">
635 <primary sortas="b-hmaptool">hmaptool</primary>
636 </indexterm>
637 </listitem>
638 </varlistentry>
639
[abdc2e6]640 <varlistentry id="llc">
641 <term><command>llc</command></term>
[7b74537e]642 <listitem>
[abdc2e6]643 <para>
[4c24eb0a]644 is the <application>LLVM</application> static compiler
[abdc2e6]645 </para>
646 <indexterm zone="llvm llc">
647 <primary sortas="b-llc">llc</primary>
648 </indexterm>
649 </listitem>
650 </varlistentry>
651
652 <varlistentry id="lli">
653 <term><command>lli</command></term>
654 <listitem>
655 <para>
656 is used to directly execute programs from
[4c24eb0a]657 <application>LLVM</application> bitcode
[abdc2e6]658 </para>
659 <indexterm zone="llvm lli">
660 <primary sortas="b-lli">lli</primary>
661 </indexterm>
662 </listitem>
663 </varlistentry>
664
[11eb3ae5]665 <varlistentry id="llvm-addr2line">
666 <term><command>llvm-addr2line</command></term>
667 <listitem>
668 <para>
669 is a tool used to convert addresses into file names and line
[4c24eb0a]670 numbers
[11eb3ae5]671 </para>
672 <indexterm zone="llvm llvm-addr2line">
673 <primary sortas="b-llvm-addr2line">llvm-addr2line</primary>
674 </indexterm>
675 </listitem>
676 </varlistentry>
677
[abdc2e6]678 <varlistentry id="llvm-ar">
679 <term><command>llvm-ar</command></term>
680 <listitem>
681 <para>
[4c24eb0a]682 is the <application>LLVM</application> archiver
[abdc2e6]683 </para>
684 <indexterm zone="llvm llvm-ar">
685 <primary sortas="b-llvm-ar">llvm-ar</primary>
686 </indexterm>
687 </listitem>
688 </varlistentry>
689
690 <varlistentry id="llvm-as">
691 <term><command>llvm-as</command></term>
692 <listitem>
693 <para>
[4c24eb0a]694 is the <application>LLVM</application> assembler
[abdc2e6]695 </para>
696 <indexterm zone="llvm llvm-as">
697 <primary sortas="b-llvm-as">llvm-as</primary>
698 </indexterm>
699 </listitem>
700 </varlistentry>
701
702 <varlistentry id="llvm-bcanalyzer">
703 <term><command>llvm-bcanalyzer</command></term>
704 <listitem>
705 <para>
[4c24eb0a]706 is the <application>LLVM</application> bitcode analyzer
[abdc2e6]707 </para>
708 <indexterm zone="llvm llvm-bcanalyzer">
709 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
710 </indexterm>
711 </listitem>
712 </varlistentry>
713
[599c6d0]714 <varlistentry id="llvm-bitcode-strip">
715 <term><command>llvm-bitcode-strip</command></term>
716 <listitem>
717 <para>
718 strips LLVM bitcode from an object
719 </para>
720 <indexterm zone="llvm llvm-bitcode-strip">
721 <primary sortas="b-llvm-bitcode-strip">llvm-bitcode-strip</primary>
722 </indexterm>
723 </listitem>
724 </varlistentry>
725
[b7a300f7]726 <varlistentry id="llvm-cat">
727 <term><command>llvm-cat</command></term>
728 <listitem>
729 <para>
[4c24eb0a]730 is a tool to concatenate llvm modules
[b7a300f7]731 </para>
732 <indexterm zone="llvm llvm-cat">
733 <primary sortas="b-llvm-cat">llvm-cat</primary>
734 </indexterm>
735 </listitem>
736 </varlistentry>
737
[11b9fb83]738 <varlistentry id="llvm-cfi-verify">
739 <term><command>llvm-cfi-verify</command></term>
740 <listitem>
741 <para>
742 identifies whether Control Flow Integrity protects all indirect
743 control flow instructions in the provided object file, DSO, or
[4c24eb0a]744 binary
[11b9fb83]745 </para>
746 <indexterm zone="llvm llvm-cfi-verify">
747 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
748 </indexterm>
749 </listitem>
750 </varlistentry>
751
[abdc2e6]752 <varlistentry id="llvm-config">
753 <term><command>llvm-config</command></term>
754 <listitem>
755 <para>
[4c24eb0a]756 Prints <application>LLVM</application> compilation options
[abdc2e6]757 </para>
758 <indexterm zone="llvm llvm-config">
759 <primary sortas="b-llvm-config">llvm-config</primary>
760 </indexterm>
761 </listitem>
762 </varlistentry>
763
764 <varlistentry id="llvm-cov">
765 <term><command>llvm-cov</command></term>
766 <listitem>
767 <para>
[4c24eb0a]768 is used to emit coverage information
[abdc2e6]769 </para>
770 <indexterm zone="llvm llvm-cov">
771 <primary sortas="b-llvm-cov">llvm-cov</primary>
772 </indexterm>
773 </listitem>
774 </varlistentry>
775
[3349c8e]776 <varlistentry id="llvm-c-test">
777 <term><command>llvm-c-test</command></term>
778 <listitem>
779 <para>
[4c24eb0a]780 is a bytecode disassembler
[3349c8e]781 </para>
782 <indexterm zone="llvm llvm-c-test">
783 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
784 </indexterm>
785 </listitem>
786 </varlistentry>
787
[b7a300f7]788 <varlistentry id="llvm-cvtres">
789 <term><command>llvm-cvtres</command></term>
790 <listitem>
791 <para>
[4c24eb0a]792 is a tool to convert Microsoft resource files to COFF
[b7a300f7]793 </para>
794 <indexterm zone="llvm llvm-cvtres">
795 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
796 </indexterm>
797 </listitem>
798 </varlistentry>
799
[b3b7e36]800 <varlistentry id="llvm-cxxdump">
801 <term><command>llvm-cxxdump</command></term>
802 <listitem>
803 <para>
[4c24eb0a]804 is used as a C++ ABI Data Dumper
[b3b7e36]805 </para>
806 <indexterm zone="llvm llvm-cxxdump">
807 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
808 </indexterm>
809 </listitem>
810 </varlistentry>
811
[b7a300f7]812 <varlistentry id="llvm-cxxfilt">
813 <term><command>llvm-cxxfilt</command></term>
814 <listitem>
815 <para>
[4c24eb0a]816 is used to demangle C++ symbols in llvm code
[b7a300f7]817 </para>
818 <indexterm zone="llvm llvm-cxxfilt">
819 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
820 </indexterm>
821 </listitem>
822 </varlistentry>
823
[11eb3ae5]824 <varlistentry id="llvm-cxxmap">
825 <term><command>llvm-cxxmap</command></term>
826 <listitem>
827 <para>
[4c24eb0a]828 is used to remap C++ mangled symbols
[11eb3ae5]829 </para>
830 <indexterm zone="llvm llvm-cxxmap">
831 <primary sortas="b-llvm-cxxmap">llvm-cxxmap</primary>
832 </indexterm>
833 </listitem>
834 </varlistentry>
835
[abdc2e6]836 <varlistentry id="llvm-diff">
837 <term><command>llvm-diff</command></term>
838 <listitem>
839 <para>
840 is the <application>LLVM</application> structural
[4c24eb0a]841 '<command>diff</command>'
[abdc2e6]842 </para>
843 <indexterm zone="llvm llvm-diff">
844 <primary sortas="b-llvm-diff">llvm-diff</primary>
845 </indexterm>
846 </listitem>
847 </varlistentry>
848
849 <varlistentry id="llvm-dis">
850 <term><command>llvm-dis</command></term>
851 <listitem>
852 <para>
[4c24eb0a]853 is the <application>LLVM</application> disassembler
[abdc2e6]854 </para>
855 <indexterm zone="llvm llvm-dis">
856 <primary sortas="b-llvm-dis">llvm-dis</primary>
857 </indexterm>
858 </listitem>
859 </varlistentry>
860
[3349c8e]861 <varlistentry id="llvm-dwarfdump">
862 <term><command>llvm-dwarfdump</command></term>
863 <listitem>
864 <para>
[4c24eb0a]865 prints the content of DWARF sections in object files
[3349c8e]866 </para>
867 <indexterm zone="llvm llvm-dwarfdump">
868 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
869 </indexterm>
870 </listitem>
871 </varlistentry>
872
873 <varlistentry id="llvm-dwp">
874 <term><command>llvm-dwp</command></term>
875 <listitem>
876 <para>
[4c24eb0a]877 merges split DWARF files
[3349c8e]878 </para>
879 <indexterm zone="llvm llvm-dwp">
880 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
881 </indexterm>
882 </listitem>
883 </varlistentry>
884
[11eb3ae5]885 <varlistentry id="llvm-elfabi">
886 <term><command>llvm-elfabi</command></term>
887 <listitem>
888 <para>
[4c24eb0a]889 is used to read information about an ELF binary's ABI
[11eb3ae5]890 </para>
891 <indexterm zone="llvm llvm-elfabi">
892 <primary sortas="b-llvm-elfabi">llvm-elfabi</primary>
893 </indexterm>
894 </listitem>
895 </varlistentry>
896
[11b9fb83]897 <varlistentry id="llvm-exegesis">
898 <term><command>llvm-exegesis</command></term>
899 <listitem>
900 <para>
901 is a benchmarking tool that uses information available in LLVM to
902 measure host machine instruction characteristics like latency or
[4c24eb0a]903 port decomposition
[11b9fb83]904 </para>
905 <indexterm zone="llvm llvm-exegesis">
906 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
907 </indexterm>
908 </listitem>
909 </varlistentry>
910
[abdc2e6]911 <varlistentry id="llvm-extract">
912 <term><command>llvm-extract</command></term>
913 <listitem>
914 <para>
915 is used to extract a function from an
[4c24eb0a]916 <application>LLVM</application> module
[abdc2e6]917 </para>
918 <indexterm zone="llvm llvm-extract">
919 <primary sortas="b-llvm-extract">llvm-extract</primary>
920 </indexterm>
921 </listitem>
922 </varlistentry>
923
[bf5fb94]924 <varlistentry id="llvm-gsymutil">
925 <term><command>llvm-gsymutil</command></term>
926 <listitem>
927 <para>
928 is used to process GSYM Symbolication Format files which
929 convert memory addresses to function name and source file
[4c24eb0a]930 line. These files are smaller than DWARF or Breakpad files
[bf5fb94]931 </para>
932 <indexterm zone="llvm llvm-gsymutil">
933 <primary sortas="b-llvm-gsymutil">llvm-gsymutil</primary>
934 </indexterm>
935 </listitem>
936 </varlistentry>
937
[11eb3ae5]938 <varlistentry id="llvm-ifs">
939 <term><command>llvm-ifs</command></term>
940 <listitem>
941 <para>
[4c24eb0a]942 is used to merge interface stubs with object files
[11eb3ae5]943 </para>
944 <indexterm zone="llvm llvm-ifs">
945 <primary sortas="b-llvm-ifs">llvm-ifs</primary>
946 </indexterm>
947 </listitem>
948 </varlistentry>
949
950 <varlistentry id="llvm-install-name-tool">
951 <term><command>llvm-install-name-tool</command></term>
952 <listitem>
953 <para>
[4c24eb0a]954 is used to rewrite load commands into MachO binary format
[11eb3ae5]955 </para>
956 <indexterm zone="llvm llvm-install-name-tool">
957 <primary sortas="b-llvm-install-name-tool">llvm-install-name-tool</primary>
958 </indexterm>
959 </listitem>
960 </varlistentry>
961
962 <varlistentry id="llvm-jitlink">
963 <term><command>llvm-jitlink</command></term>
964 <listitem>
965 <para>
966 is used to parse relocatable object files to make their contents
[4c24eb0a]967 executable in a target process
[11eb3ae5]968 </para>
969 <indexterm zone="llvm llvm-jitlink">
970 <primary sortas="b-llvm-jitlink">llvm-jitlink</primary>
971 </indexterm>
972 </listitem>
973 </varlistentry>
974
[599c6d0]975 <varlistentry id="llvm-libtool-darwin">
976 <term><command>llvm-libtool-darwin</command></term>
977 <listitem>
978 <para>
979 provides basic libtool functionality on Darwin-based systems.
980 This is mostly useful if you are generating binaries for macOS
981 systems
982 </para>
983 <indexterm zone="llvm llvm-libtool-darwin">
984 <primary sortas="b-llvm-libtool-darwin">llvm-libtool-darwin</primary>
985 </indexterm>
986 </listitem>
987 </varlistentry>
988
[abdc2e6]989 <varlistentry id="llvm-link">
990 <term><command>llvm-link</command></term>
991 <listitem>
992 <para>
[4c24eb0a]993 is the <application>LLVM</application> linker
[abdc2e6]994 </para>
995 <indexterm zone="llvm llvm-link">
996 <primary sortas="b-llvm-link">llvm-link</primary>
997 </indexterm>
998 </listitem>
999 </varlistentry>
1000
[11eb3ae5]1001 <varlistentry id="llvm-lipo">
1002 <term><command>llvm-lipo</command></term>
1003 <listitem>
1004 <para>
[4c24eb0a]1005 is used to create universal binaries from MachO files
[11eb3ae5]1006 </para>
1007 <indexterm zone="llvm llvm-lipo">
1008 <primary sortas="b-llvm-lipo">llvm-lipo</primary>
1009 </indexterm>
1010 </listitem>
1011 </varlistentry>
1012
[3349c8e]1013 <varlistentry id="llvm-lto">
1014 <term><command>llvm-lto</command></term>
1015 <listitem>
1016 <para>
1017 is the <application>LLVM</application> LTO (link time optimization)
[4c24eb0a]1018 linker
[3349c8e]1019 </para>
1020 <indexterm zone="llvm llvm-lto">
1021 <primary sortas="b-llvm-lto">llvm-lto</primary>
1022 </indexterm>
1023 </listitem>
1024 </varlistentry>
1025
[b7a300f7]1026 <varlistentry id="llvm-lto2">
1027 <term><command>llvm-lto2</command></term>
1028 <listitem>
1029 <para>
[4c24eb0a]1030 is a test harness for the resolution based LTO interface
[b7a300f7]1031 </para>
1032 <indexterm zone="llvm llvm-lto2">
1033 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
1034 </indexterm>
1035 </listitem>
1036 </varlistentry>
1037
[3349c8e]1038 <varlistentry id="llvm-mc">
1039 <term><command>llvm-mc</command></term>
1040 <listitem>
1041 <para>
[4c24eb0a]1042 is a standalone machine code assembler/disassembler
[3349c8e]1043 </para>
1044 <indexterm zone="llvm llvm-mc">
1045 <primary sortas="b-llvm-mc">llvm-mc</primary>
1046 </indexterm>
1047 </listitem>
1048 </varlistentry>
1049
[11b9fb83]1050 <varlistentry id="llvm-mca">
1051 <term><command>llvm-mca</command></term>
1052 <listitem>
1053 <para>
[c5e3c1c]1054 is a performance analysis tool to statically measure the
[4c24eb0a]1055 performance of machine code
[11b9fb83]1056 </para>
1057 <indexterm zone="llvm llvm-mca">
1058 <primary sortas="b-llvm-mca">llvm-mca</primary>
1059 </indexterm>
1060 </listitem>
1061 </varlistentry>
1062
1063<!-- <varlistentry id="llvm-mcmarkup">
[b7a300f7]1064 <term><command>llvm-mcmarkup</command></term>
1065 <listitem>
1066 <para>
1067 is a parser for machine code markup.
1068 </para>
1069 <indexterm zone="llvm llvm-mcmarkup">
1070 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
1071 </indexterm>
1072 </listitem>
[11b9fb83]1073 </varlistentry>-->
[b7a300f7]1074
[c5e3c1c]1075 <varlistentry id="llvm-ml">
1076 <term><command>llvm-ml</command></term>
1077 <listitem>
1078 <para>
[4c24eb0a]1079 is a playground for machine code provided by LLVM
[c5e3c1c]1080 </para>
1081 <indexterm zone="llvm llvm-ml">
1082 <primary sortas="b-llvm-ml">llvm-ml</primary>
1083 </indexterm>
1084 </listitem>
1085 </varlistentry>
1086
[b7a300f7]1087 <varlistentry id="llvm-modextract">
1088 <term><command>llvm-modextract</command></term>
1089 <listitem>
1090 <para>
[4c24eb0a]1091 is a tool to extract one module from multimodule bitcode files
[b7a300f7]1092 </para>
1093 <indexterm zone="llvm llvm-modextract">
1094 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
1095 </indexterm>
1096 </listitem>
1097 </varlistentry>
1098
1099 <varlistentry id="llvm-mt">
1100 <term><command>llvm-mt</command></term>
1101 <listitem>
1102 <para>
1103 is a tool to generate signed files and catalogs from a
[4c24eb0a]1104 side-by-side assembly manifest (used for Microsoft SDK)
[b7a300f7]1105 </para>
1106 <indexterm zone="llvm llvm-mt">
1107 <primary sortas="b-llvm-mt">llvm-mt</primary>
1108 </indexterm>
1109 </listitem>
1110 </varlistentry>
1111
[abdc2e6]1112 <varlistentry id="llvm-nm">
1113 <term><command>llvm-nm</command></term>
1114 <listitem>
1115 <para>
1116 is used to list <application>LLVM</application> bitcode
[4c24eb0a]1117 and object file's symbol table
[abdc2e6]1118 </para>
1119 <indexterm zone="llvm llvm-nm">
1120 <primary sortas="b-llvm-nm">llvm-nm</primary>
1121 </indexterm>
1122 </listitem>
1123 </varlistentry>
[b3b7e36]1124
[11b9fb83]1125 <varlistentry id="llvm-objcopy">
1126 <term><command>llvm-objcopy</command></term>
1127 <listitem>
1128 <para>
[4c24eb0a]1129 is LLVM's version of an objcopy tool
[11b9fb83]1130 </para>
1131 <indexterm zone="llvm llvm-objcopy">
1132 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
1133 </indexterm>
1134 </listitem>
1135 </varlistentry>
1136
[3349c8e]1137 <varlistentry id="llvm-objdump">
1138 <term><command>llvm-objdump</command></term>
1139 <listitem>
1140 <para>
[4c24eb0a]1141 is an <application>LLVM</application> object file dumper
[3349c8e]1142 </para>
1143 <indexterm zone="llvm llvm-objdump">
1144 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
1145 </indexterm>
1146 </listitem>
1147 </varlistentry>
1148
[b7a300f7]1149 <varlistentry id="llvm-opt-report">
1150 <term><command>llvm-opt-report</command></term>
1151 <listitem>
1152 <para>
1153 is a tool to generate an optimization report from YAML optimization
[4c24eb0a]1154 record files
[b7a300f7]1155 </para>
1156 <indexterm zone="llvm llvm-opt-report">
1157 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
1158 </indexterm>
1159 </listitem>
1160 </varlistentry>
1161
1162 <varlistentry id="llvm-pdbutil">
1163 <term><command>llvm-pdbutil</command></term>
[b3b7e36]1164 <listitem>
1165 <para>
[4c24eb0a]1166 is a PDB (Program Database) dumper. PDB is a Microsoft format
[b3b7e36]1167 </para>
[b7a300f7]1168 <indexterm zone="llvm llvm-pdbutil">
1169 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]1170 </indexterm>
1171 </listitem>
1172 </varlistentry>
[3349c8e]1173
1174 <varlistentry id="llvm-profdata">
1175 <term><command>llvm-profdata</command></term>
[abdc2e6]1176 <listitem>
1177 <para>
[4c24eb0a]1178 is a small tool to manipulate and print profile data files
[abdc2e6]1179 </para>
[3349c8e]1180 <indexterm zone="llvm llvm-profdata">
1181 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]1182 </indexterm>
1183 </listitem>
[3349c8e]1184 </varlistentry>
[abdc2e6]1185
[599c6d0]1186 <varlistentry id="llvm-profgen">
1187 <term><command>llvm-profgen</command></term>
1188 <listitem>
1189 <para>
1190 generates LLVM SPGO profiling information
1191 </para>
1192 <indexterm zone="llvm llvm-profgen">
1193 <primary sortas="b-llvm-profgen">llvm-profgen</primary>
1194 </indexterm>
1195 </listitem>
1196 </varlistentry>
1197
[abdc2e6]1198 <varlistentry id="llvm-ranlib">
1199 <term><command>llvm-ranlib</command></term>
1200 <listitem>
1201 <para>
[3fdc9b0]1202 is used to generate an index for a <application>LLVM</application>
[4c24eb0a]1203 archive
[abdc2e6]1204 </para>
1205 <indexterm zone="llvm llvm-ranlib">
1206 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
1207 </indexterm>
1208 </listitem>
1209 </varlistentry>
1210
[11b9fb83]1211 <varlistentry id="llvm-rc">
1212 <term><command>llvm-rc</command></term>
1213 <listitem>
1214 <para>
1215 is a platform-independent tool to compile resource scripts
[4c24eb0a]1216 into binary resource files
[11b9fb83]1217 </para>
1218 <indexterm zone="llvm llvm-rc">
1219 <primary sortas="b-llvm-rc">llvm-rc</primary>
1220 </indexterm>
1221 </listitem>
1222 </varlistentry>
1223
[3349c8e]1224 <varlistentry id="llvm-readobj">
1225 <term><command>llvm-readobj</command></term>
1226 <listitem>
1227 <para>
[4c24eb0a]1228 displays low-level format-specific information about object files
[3349c8e]1229 </para>
1230 <indexterm zone="llvm llvm-readobj">
1231 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1232 </indexterm>
1233 </listitem>
1234 </varlistentry>
1235
[11eb3ae5]1236 <varlistentry id="llvm-reduce">
1237 <term><command>llvm-reduce</command></term>
1238 <listitem>
1239 <para>
1240 is used to automatically reduce testcases
[4c24eb0a]1241 when running a test suite
[11eb3ae5]1242 </para>
1243 <indexterm zone="llvm llvm-reduce">
1244 <primary sortas="b-llvm-reduce">llvm-reduce</primary>
1245 </indexterm>
1246 </listitem>
1247 </varlistentry>
1248
[3349c8e]1249 <varlistentry id="llvm-rtdyld">
1250 <term><command>llvm-rtdyld</command></term>
1251 <listitem>
1252 <para>
[4c24eb0a]1253 is the <application>LLVM</application> MC-JIT tool
[3349c8e]1254 </para>
1255 <indexterm zone="llvm llvm-rtdyld">
1256 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1257 </indexterm>
1258 </listitem>
1259 </varlistentry>
1260
1261 <varlistentry id="llvm-size">
1262 <term><command>llvm-size</command></term>
1263 <listitem>
1264 <para>
[4c24eb0a]1265 is the <application>LLVM</application> object size dumper
[3349c8e]1266 </para>
1267 <indexterm zone="llvm llvm-size">
1268 <primary sortas="b-llvm-size">llvm-size</primary>
1269 </indexterm>
1270 </listitem>
1271 </varlistentry>
1272
1273 <varlistentry id="llvm-split">
1274 <term><command>llvm-split</command></term>
1275 <listitem>
1276 <para>
[4c24eb0a]1277 is the <application>LLVM</application> module splitter
[3349c8e]1278 </para>
1279 <indexterm zone="llvm llvm-split">
1280 <primary sortas="b-llvm-split">llvm-split</primary>
1281 </indexterm>
1282 </listitem>
1283 </varlistentry>
1284
[abdc2e6]1285 <varlistentry id="llvm-stress">
1286 <term><command>llvm-stress</command></term>
1287 <listitem>
1288 <para>
1289 is used to generate random
[4c24eb0a]1290 <filename class="extension">.ll</filename> files
[abdc2e6]1291 </para>
1292 <indexterm zone="llvm llvm-stress">
1293 <primary sortas="b-llvm-stress">llvm-stress</primary>
1294 </indexterm>
1295 </listitem>
1296 </varlistentry>
1297
[b7a300f7]1298 <varlistentry id="llvm-strings">
1299 <term><command>llvm-strings</command></term>
1300 <listitem>
1301 <para>
1302 print strings found in a binary (object file, executable, or
[4c24eb0a]1303 archive library)
[b7a300f7]1304 </para>
1305 <indexterm zone="llvm llvm-strings">
1306 <primary sortas="b-llvm-strings">llvm-strings</primary>
1307 </indexterm>
1308 </listitem>
1309 </varlistentry>
1310
[3349c8e]1311 <varlistentry id="llvm-symbolizer">
1312 <term><command>llvm-symbolizer</command></term>
1313 <listitem>
1314 <para>
[4c24eb0a]1315 converts adresses into source code locations
[3349c8e]1316 </para>
1317 <indexterm zone="llvm llvm-symbolizer">
1318 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1319 </indexterm>
1320 </listitem>
1321 </varlistentry>
1322
[abdc2e6]1323 <varlistentry id="llvm-tblgen">
1324 <term><command>llvm-tblgen</command></term>
1325 <listitem>
1326 <para>
1327 is the <application>LLVM</application> Target Description
[4c24eb0a]1328 To C++ Code Generator
[abdc2e6]1329 </para>
1330 <indexterm zone="llvm llvm-tblgen">
1331 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1332 </indexterm>
1333 </listitem>
1334 </varlistentry>
1335
[11b9fb83]1336 <varlistentry id="llvm-undname">
1337 <term><command>llvm-undname</command></term>
1338 <listitem>
1339 <para>
[4c24eb0a]1340 is a tool to demangle names
[11b9fb83]1341 </para>
1342 <indexterm zone="llvm llvm-undname">
1343 <primary sortas="b-llvm-undname">llvm-undname</primary>
1344 </indexterm>
1345 </listitem>
1346 </varlistentry>
1347
[b7a300f7]1348 <varlistentry id="llvm-xray">
1349 <term><command>llvm-xray</command></term>
1350 <listitem>
1351 <para>
[4c24eb0a]1352 is an implementation of Google's XRay function call tracing system
[b7a300f7]1353 </para>
1354 <indexterm zone="llvm llvm-xray">
1355 <primary sortas="b-llvm-xray">llvm-xray</primary>
1356 </indexterm>
1357 </listitem>
1358 </varlistentry>
1359
[599c6d0]1360<!--
[39dd48b]1361 <varlistentry id="obj2yaml">
1362 <term><command>obj2yaml</command></term>
1363 <listitem>
1364 <para>
[b7a300f7]1365 takes an object file, and produces a YAML representation of the
[4c24eb0a]1366 file
[39dd48b]1367 </para>
1368 <indexterm zone="llvm obj2yaml">
1369 <primary sortas="b-obj2yaml">obj2yaml</primary>
1370 </indexterm>
1371 </listitem>
1372 </varlistentry>
[599c6d0]1373-->
[39dd48b]1374
[abdc2e6]1375 <varlistentry id="opt">
1376 <term><command>opt</command></term>
1377 <listitem>
1378 <para>
[4c24eb0a]1379 is the <application>LLVM</application> optimizer
[abdc2e6]1380 </para>
1381 <indexterm zone="llvm opt">
1382 <primary sortas="b-opt">opt</primary>
1383 </indexterm>
1384 </listitem>
1385 </varlistentry>
1386
[3349c8e]1387 <varlistentry id="sancov">
1388 <term><command>sancov</command></term>
1389 <listitem>
1390 <para>
[4c24eb0a]1391 is the sanitizer coverage processing tool
[3349c8e]1392 </para>
1393 <indexterm zone="llvm sancov">
1394 <primary sortas="b-sancov">sancov</primary>
1395 </indexterm>
1396 </listitem>
1397 </varlistentry>
1398
[b4c31a6]1399 <varlistentry id="sanstats">
1400 <term><command>sanstats</command></term>
1401 <listitem>
1402 <para>
[4c24eb0a]1403 is the sanitizer statistics processing tool
[b4c31a6]1404 </para>
1405 <indexterm zone="llvm sanstats">
1406 <primary sortas="b-sanstats">sanstats</primary>
1407 </indexterm>
1408 </listitem>
1409 </varlistentry>
1410
[70251fc]1411 <varlistentry id="scan-build">
1412 <term><command>scan-build</command></term>
1413 <listitem>
1414 <para>
1415 is a <application>Perl</application> script that invokes the
[4c24eb0a]1416 <application>Clang</application> static analyzer
[70251fc]1417 </para>
1418 <indexterm zone="llvm scan-build">
1419 <primary sortas="b-scan-build">scan-build</primary>
[39dd48b]1420 </indexterm>
1421 </listitem>
1422 </varlistentry>
1423
[3349c8e]1424 <varlistentry id="scan-view">
1425 <term><command>scan-view</command></term>
1426 <listitem>
1427 <para>
1428 is a viewer for <application>Clang</application> static analyzer
[4c24eb0a]1429 results
[3349c8e]1430 </para>
1431 <indexterm zone="llvm scan-view">
1432 <primary sortas="b-scan-view">scan-view</primary>
1433 </indexterm>
1434 </listitem>
1435 </varlistentry>
1436
[599c6d0]1437 <varlistentry id="split-file">
1438 <term><command>split-file</command></term>
1439 <listitem>
1440 <para>
1441 splits an input file into multiple parts separated by regex
1442 </para>
1443 <indexterm zone="llvm split-file">
1444 <primary sortas="b-split-file">split-file</primary>
1445 </indexterm>
1446 </listitem>
1447 </varlistentry>
1448
[3349c8e]1449 <varlistentry id="verify-uselistorder">
1450 <term><command>verify-uselistorder</command></term>
1451 <listitem>
1452 <para>
1453 is the <application>LLVM</application> tool to verify use-list
[4c24eb0a]1454 order
[3349c8e]1455 </para>
1456 <indexterm zone="llvm verify-uselistorder">
1457 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1458 </indexterm>
1459 </listitem>
1460 </varlistentry>
1461
[599c6d0]1462<!-- Removed in 12.0.0
[39dd48b]1463 <varlistentry id="yaml2obj">
1464 <term><command>yaml2obj</command></term>
1465 <listitem>
1466 <para>
1467 takes a YAML representation of an object file and converts it
[4c24eb0a]1468 to a binary file
[39dd48b]1469 </para>
1470 <indexterm zone="llvm yaml2obj">
1471 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1472 </indexterm>
1473 </listitem>
1474 </varlistentry>
[599c6d0]1475-->
[3349c8e]1476<!--
[abdc2e6]1477 <varlistentry id="libllvm">
1478 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1479 <listitem>
1480 <para>
1481 contains the <application>LLVM</application> API functions.
1482 </para>
1483 <indexterm zone="llvm libllvm">
1484 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1485 </indexterm>
1486 </listitem>
1487 </varlistentry>
[3349c8e]1488
[abdc2e6]1489 <varlistentry id="libprofile_rt">
1490 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1491 <listitem>
1492 <para>
1493 is the C, C++ and Objective-C runtime library for
1494 <application>Clang</application>.
1495 </para>
1496 <indexterm zone="llvm libprofile_rt">
1497 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
[7b74537e]1498 </indexterm>
1499 </listitem>
[0f5ca44]1500 </varlistentry>-->
[7b74537e]1501
1502 </variablelist>
[abdc2e6]1503
[7b74537e]1504 </sect2>
1505
1506</sect1>
Note: See TracBrowser for help on using the repository browser.