source: general/prog/llvm.xml@ f192a5c

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since f192a5c was 7481fd4, checked in by Douglas R. Reno <renodr@…>, 11 months ago

Tags

  • Property mode set to 100644
File size: 63.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 " ">
[55fb76ba]11 <!ENTITY llvm-md5sum "d9185fc007c32aea27a6de3c7c1eb90d">
[3f6a6dc]12 <!ENTITY llvm-size "54 MB">
[55fb76ba]13 <!ENTITY llvm-buildsize "3.1 GB (938 MB installed; add 20 GB for tests and 308 MB for documentation)">
14 <!ENTITY llvm-time "13 SBU (Add 8 SBU for tests; both using parallelism=8)">
[a6221fd]15
[81210e4]16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
[55fb76ba]17 <!ENTITY clang-md5sum "cb3e79db62c4c3b78cfcdebe66b00268">
[3f6a6dc]18 <!ENTITY clang-size "20 MB">
[a6221fd]19
[563e0d6]20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
[55fb76ba]21 <!ENTITY compiler-rt-md5sum "3061b4cb0b2428a32b4fb5db540fe66c">
[e58cf149]22 <!ENTITY compiler-rt-size "2.3 MB">
[9a599135]23
[b30ce9b]24 <!-- CMake modules and third party dependencies renamed and uploaded
25 onto anduin to avoid stupid file names. -->
26
[eeb331f8]27 <!ENTITY cmake-llvm-download-http "&sources-anduin-http;/llvm/llvm-cmake.src.tar.xz">
28 <!ENTITY cmake-llvm-md5sum "356a1aff675d281d7c76165269d33bd5">
29 <!ENTITY cmake-llvm-size "9 KB">
[b30ce9b]30
[eeb331f8]31 <!ENTITY llvm-3rdparty-download-http "&sources-anduin-http;/llvm/llvm-third-party.src.tar.xz">
32 <!ENTITY llvm-3rdparty-md5sum "8b506e49e5fa4c41186ba8ba7da5af82">
[b30ce9b]33 <!ENTITY llvm-3rdparty-size "376 KB">
[7b74537e]34]>
35
[abdc2e6]36<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]37 <?dbhtml filename="llvm.html" ?>
38
39
40 <title>LLVM-&llvm-version;</title>
41
42 <indexterm zone="llvm">
43 <primary sortas="a-LLVM">LLVM</primary>
44 </indexterm>
45
46 <sect2 role="package">
47 <title>Introduction to LLVM</title>
48
[abdc2e6]49 <para>
[a6221fd]50 The <application>LLVM</application> package contains a collection of
51 modular and reusable compiler and toolchain technologies. The Low Level
52 Virtual Machine (LLVM) Core libraries provide a modern source and
53 target-independent optimizer, along with code generation support for many
54 popular CPUs (as well as some less common ones!). These libraries are
55 built around a well specified code representation known as the LLVM
56 intermediate representation ("LLVM IR").
[abdc2e6]57 </para>
[f36bebcd]58
[abdc2e6]59 <para>
[74762a5]60 <application>Clang</application> provides new C, C++, Objective C
61 and Objective C++ front-ends for <application>LLVM</application> and is
62 required by some desktop packages such as <application>firefox</application>
63 and for <application>rust</application> if that is built using the system
64 <application>LLVM</application>.
65 </para>
66
67 <para>
68 The <application>Compiler RT</application> package provides
69 runtime sanitizer and profiling libraries for developers who use
70 <application>Clang</application> and <application>LLVM</application>.
[abdc2e6]71 </para>
[7b74537e]72
[7481fd4]73 &lfs120_checked;
[7b74537e]74
75 <bridgehead renderas="sect3">Package Information</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
[abdc2e6]78 <para>
79 Download (HTTP): <ulink url="&llvm-download-http;"/>
80 </para>
[7b74537e]81 </listitem>
82 <listitem>
[abdc2e6]83 <para>
84 Download (FTP): <ulink url="&llvm-download-ftp;"/>
85 </para>
[7b74537e]86 </listitem>
87 <listitem>
[abdc2e6]88 <para>
89 Download MD5 sum: &llvm-md5sum;
90 </para>
[7b74537e]91 </listitem>
92 <listitem>
[abdc2e6]93 <para>
94 Download size: &llvm-size;
95 </para>
[7b74537e]96 </listitem>
97 <listitem>
[abdc2e6]98 <para>
99 Estimated disk space required: &llvm-buildsize;
100 </para>
[7b74537e]101 </listitem>
102 <listitem>
[abdc2e6]103 <para>
104 Estimated build time: &llvm-time;
105 </para>
[7b74537e]106 </listitem>
107 </itemizedlist>
108
[9a599135]109 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
[754f4c6d]110 <para>
111 <emphasis role="strong">Cmake modules for LLVM</emphasis>
112 </para>
113 <itemizedlist spacing="compact">
114 <listitem>
115 <para>
116 Download: <ulink url="&cmake-llvm-download-http;"/>
117 </para>
118 </listitem>
119 <listitem>
120 <para>
121 Download MD5 sum: &cmake-llvm-md5sum;
122 </para>
123 </listitem>
124 <listitem>
125 <para>
126 Download size: &cmake-llvm-size;
127 </para>
128 </listitem>
129 </itemizedlist>
[9a599135]130
[b30ce9b]131 <para>
132 <emphasis role="strong">Third-party dependencies for LLVM build system</emphasis>
133 </para>
134 <itemizedlist spacing="compact">
135 <listitem>
136 <para>
137 Download: <ulink url="&llvm-3rdparty-download-http;"/>
138 </para>
139 </listitem>
140 <listitem>
141 <para>
142 Download MD5 sum: &llvm-3rdparty-md5sum;
143 </para>
144 </listitem>
145 <listitem>
146 <para>
147 Download size: &llvm-3rdparty-size;
148 </para>
149 </listitem>
150 </itemizedlist>
[3f6a6dc]151
[b30ce9b]152
[74762a5]153 <bridgehead renderas="sect3">Recommended Download</bridgehead>
[754f4c6d]154 <para>
155 <emphasis role="strong">Clang</emphasis>
156 </para>
157 <itemizedlist spacing="compact">
158 <listitem>
159 <para>
160 Download: <ulink url="&clang-download-http;"/>
161 </para>
162 </listitem>
163 <listitem>
164 <para>
165 Download MD5 sum: &clang-md5sum;
166 </para>
167 </listitem>
168 <listitem>
169 <para>
170 Download size: &clang-size;
171 </para>
172 </listitem>
173 </itemizedlist>
174 <itemizedlist spacing="compact">
175 <listitem>
176 <para>
177 Patch enabling <xref linkend="gSSP"/> by default in clang:
178 <ulink url="&patch-root;/clang-&llvm-version;-enable_default_ssp-1.patch"/>
179 </para>
180 </listitem>
181 </itemizedlist>
[70251fc]182
[74762a5]183 <bridgehead renderas="sect3">Optional Download</bridgehead>
[754f4c6d]184 <para>
185 <emphasis role="strong">Compiler RT</emphasis>
186 </para>
187 <itemizedlist spacing="compact">
188 <listitem>
189 <para>
190 Download: <ulink url="&compiler-rt-download-http;"/>
191 </para>
192 </listitem>
193 <listitem>
194 <para>
195 Download MD5 sum: &compiler-rt-md5sum;
196 </para>
197 </listitem>
198 <listitem>
199 <para>
200 Download size: &compiler-rt-size;
201 </para>
202 </listitem>
203 </itemizedlist>
[7b74537e]204 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
205
[7b3f441]206 <bridgehead renderas="sect4">Required</bridgehead>
207 <para role="required">
[2ee8145]208 <xref linkend="cmake"/>
[f36bebcd]209 </para>
210
[7b74537e]211 <bridgehead renderas="sect4">Optional</bridgehead>
212 <para role="optional">
[abdc2e6]213 <xref linkend="doxygen"/>,
[2ee8145]214 <xref linkend="git"/>,
[abdc2e6]215 <xref linkend="graphviz"/>,
216 <xref linkend="libxml2"/>,
[c5e3c1c]217 <xref linkend="pygments"/>,
[a96b7ae]218 <xref linkend="rsync"/> (for tests),
[ddf66964]219 <xref linkend="recommonmark"/> (for building documentation),
[2d98031c]220 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]221 <xref linkend="valgrind"/>,
[d21c6551]222 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]223 <xref linkend="zip"/>,
[11eb3ae5]224 <ulink url="https://ocaml.org/">OCaml</ulink>,
[9a599135]225 <ulink url="https://pypi.org/project/psutil/">psutil</ulink> (for tests),
[ddf66964]226 and <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]227 </para>
228
229 </sect2>
230
231 <sect2 role="installation">
232 <title>Installation of LLVM</title>
233
[a7b21cc]234 <para>
[b30ce9b]235 Two additional tarballs
[eeb331f8]236 <filename>llvm-cmake.src.tar.xz</filename> and
237 <filename>llvm-third-party.src.tar.xz</filename> are
[b30ce9b]238 needed by LLVM building system. The upstream expects them extracted
239 at the same level as the
240 <filename>llvm-&llvm-version;.src.tar.xz</filename> tarball,
241 and the extracted directories renamed to
242 <filename class="directory">cmake</filename> and
243 <filename class="directory">third-party</filename>. Extract them and
244 modify the build system to avoid creating ambiguously-named
245 directories outside the
[a7b21cc]246 <filename>llvm-&llvm-version;.src</filename> hierarchy:
247 </para>
[9a599135]248
[eeb331f8]249<screen><userinput>tar -xf ../llvm-cmake.src.tar.xz &amp;&amp;
250tar -xf ../llvm-third-party.src.tar.xz &amp;&amp;
251sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@llvm-cmake.src@' \
252 -i CMakeLists.txt &amp;&amp;
253sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@llvm-third-party.src@' \
[b30ce9b]254 -i cmake/modules/HandleLLVMOptions.cmake</userinput></screen>
[bceef3d]255
[abdc2e6]256 <para>
[74762a5]257 Install <application>clang</application> into
[abdc2e6]258 the source tree by running the following commands:
259 </para>
[f36bebcd]260
[74762a5]261<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[005af62c]262mv tools/clang-&llvm-version;.src tools/clang</userinput></screen>
[74762a5]263
264 <para>
265 If you have downloaded <application>compiler-rt</application>,
266 install it into the source tree by running the following commands:
267 </para>
[f36bebcd]268
[74762a5]269<screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[563e0d6]270mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[bd4f0143]271
[bf5fb94]272 <para>
273 There are many Python scripts in this package which use
274 <command>/usr/bin/env python</command> to access the system Python
[b9c353b]275 which on LFS is <xref linkend="python3"/>. Use the following command
[bf5fb94]276 to fix these scripts:
277 </para>
278
279<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
[5a8c6008]280
[08c7ccd]281 <para>
282 If you have downloaded <application>clang</application>,
283 apply the following patch to enable <xref linkend="gSSP"/> by default
284 in compiled programs.
285 </para>
286<!-- need <../<patch> instead of -i because -d changes directory
287 before applying -i -->
[0472eb0]288<screen><userinput remap="pre">patch -Np2 -d tools/clang &lt;../clang-&llvm-version;-enable_default_ssp-1.patch</userinput></screen>
[9e82e4a]289
[b30ce9b]290 <para>
291 If you have downloaded <application>compiler-rt</application>,
292 fix a test case broken by default SSP in
293 <application>clang</application>:
294 </para>
295
296<screen><userinput remap="pre">sed 's/clang_dfsan/&amp; -fno-stack-protector/' \
297 -i projects/compiler-rt/test/dfsan/origin_unaligned_memtrans.c</userinput></screen>
298
[abdc2e6]299 <para>
300 Install <application>LLVM</application> by running the following
301 commands:
302 </para>
303
[3349c8e]304<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]305cd build &amp;&amp;
306
[8e9b706]307CC=gcc CXX=g++ \
308cmake -DCMAKE_INSTALL_PREFIX=/usr \
309 -DLLVM_ENABLE_FFI=ON \
310 -DCMAKE_BUILD_TYPE=Release \
311 -DLLVM_BUILD_LLVM_DYLIB=ON \
312 -DLLVM_LINK_LLVM_DYLIB=ON \
[b3f053c5]313 -DLLVM_ENABLE_RTTI=ON \
[8e9b706]314 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
[76bec58]315 -DLLVM_BINUTILS_INCDIR=/usr/include \
[3e208e99]316 -DLLVM_INCLUDE_BENCHMARKS=OFF \
[0472eb0]317 -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
[8e9b706]318 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]319ninja</userinput></screen>
[7b74537e]320
[a42c273]321 <para>
[ddf66964]322 If you have installed <xref linkend="recommonmark"/> and its
323 dependencies, you can generate the html documentation and manual
324 pages with the following commands:
[a42c273]325 </para>
326
[bf5fb94]327<screen remap="doc"><userinput>cmake -DLLVM_BUILD_DOCS=ON \
328 -DLLVM_ENABLE_SPHINX=ON \
[a42c273]329 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
330 -Wno-dev -G Ninja .. &amp;&amp;
331ninja docs-llvm-html docs-llvm-man</userinput></screen>
332
333 <para>
[74762a5]334 The clang documentation can be built too:
[a42c273]335 </para>
336
337<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
338
[403aae58]339 <!-- The excessive core dump made my system irresponsive. -->
340 <para>
341 LLVM test suite can produce many core dump files. They will occupy
342 a large amount of disk space, and the core dump process can
343 significantly slow down the testing. To test the results with core
344 dump disabled, <phrase revision='systemd'>ensure
345 <xref linkend='systemd'/> is rebuilt with
346 <xref linkend='linux-pam'/> support and the current login session is
347 started after updating the
348 <filename>/etc/pam.d/system-session</filename> file to include
349 <filename class='libraryfile'>pam_systemd.so</filename>,
350 then </phrase>issue:
351 </para>
352
353 <screen remap="test" revision="sysv"><userinput>sh -c 'ulimit -c 0 &amp;&amp; ninja check-all'</userinput></screen>
354
355 <!-- From core(5): "RLIMIT_CORE will be ignored if the system is
356 configured to pipe core dumps to a program". Here "the program"
357 is systemd-coredumpd. So we need some fancy systemd setting.
358 -&ndash;user: Run it under per-user systemd manager, avoiding
359 the necessity of root priviledge.
360 -&nash;pty: Run it in a pseudo-terminal, so we can monitor the
361 process or interrupt it with Ctrl-C if we want.
362 -d: Run it with $PWD as the working directory.
363 -G: Delete the transient service unit even if the command fails,
364 to prevent "systemctl -&ndash;user status" from reporting
365 "degraded".
366 -p LimitCORE=0: Disable core dump.
367 -->
[a833725]368
369<screen remap="test" revision="systemd"><userinput>systemctl --user start dbus &amp;&amp;
[403aae58]370systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all</userinput></screen>
371
[abdc2e6]372 <para>
[11b9fb83]373 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
374 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
375 are used by a couple of the link-static tests. -->
[403aae58]376 Tests are
[11b9fb83]377 built with all <emphasis>available</emphasis> cores, but run using the number
378 of <emphasis>online</emphasis> processors. (The difference is that available
379 cores can be limited using <command>taskset</command>, but taking them offline
380 requires echoing 0 to <filename
381 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
382 by the <systemitem class="username">root</systemitem> user and makes them
[17658ff]383 temporarily unusable by all jobs on the machine.) One test named
384 <filename>Linux/clone_setns.cpp</filename> will fail if
385 <option>CONFIG_USER_NS</option> is not enabled in kernel
386 configuration.
[3fd4a83f]387 <!-- https://github.com/llvm/llvm-project/issues/64388 -->
[403aae58]388 The tests named <filename>AtoiAndFriendsOOBTest</filename>,
389 <filename>StrtolOOBTest</filename>,
390 <filename>StrtollOOBTest</filename>,
391 <filename>interception_malloc_test.cpp</filename>, and
392 <filename>scanf-allocate.cpp</filename> are known to fail with
393 Glibc-2.38.
[3f6a6dc]394 <!-- 16.0.3: 67327 Passed, 23510 Unsupported, 85 Skipped,
[eeb331f8]395 124 Expectedly Failed
396 16.0.4 67327 Passed, 23507 Unsupported, 85 Skipped,
397 124 Expectedly Failed, 6 Failed
398 Failed Tests (6):
399 AddressSanitizer-x86_64-linux :: TestCases/log-path_test.cpp
400 AddressSanitizer-x86_64-linux-dynamic :: TestCases/log-path_test.cpp
401 MemProfiler-x86_64-linux :: TestCases/log_path_test.cpp
402 MemProfiler-x86_64-linux-dynamic :: TestCases/log_path_test.cpp
403 LLVM :: tools/llvm-libtool-darwin/L-and-l.test
404 ThreadSanitizer-x86_64 :: Linux/clone_setns.cpp
[55fb76ba]405
406 16.0.5 had the same test failures as 16.0.4. - bdubbs
[17658ff]407
408 16.0.5 in LFS r11.3-141 with a minimal kernel configuration:
409 67330 Passed, 23512 Unsupported, 85 Skipped,
410 124 Expectedly Failed, 1 Failed
411 FAIL: ThreadSanitizer-x86_64 :: Linux/clone_setns.cpp - xry111
[403aae58]412
413 16.0.5 with Glibc-2.38:
414 63716 Passed, 23512 Unsupported, 85 Skipped,
415 124 Expectedly Failed, 15 Failed
416
417 - AtoiAndFriendsOOBTest, StrtolOOBTest, StrtollOOBTest
418 (repeated 4 times with different configurations)
419 - interception_malloc_test.cpp (repeated 2 times)
420 - scanf-allocate.cpp
[eeb331f8]421 -->
[3f6a6dc]422
[b30ce9b]423 <!-- To editors: it seems there is a more thorough test suite named
424 "test-suite-16.0.0.src.tar.xz" on the GitHub release download
425 page. The usage of it is on
426 https://llvm.org/docs/TestSuiteGuide.html. It looks like we've
[eeb331f8]427 never mentioned it in BLFS.
428
429 Let's let it go. llvm is complex enough as it is. Adding
430 the additional testsuite is IMO overkill. - bdubbs -->
[abdc2e6]431 </para>
[7b74537e]432
[abdc2e6]433 <para>
[109eb9ef]434 Now, as the &root; user:
[abdc2e6]435 </para>
[7b74537e]436
[109eb9ef]437<screen role="root"><userinput>ninja install &amp;&amp;
[e58cf149]438cp bin/FileCheck /usr/bin</userinput></screen>
[3e8c126]439<!-- as of version 13.0.0, the install process seems to install the html
440 documentation and the manual pages. The llvm html documentation
[ddf66964]441 is installed into /usr/share/doc/LLVM/llvm, while the clang html
442 documentation is installed into /usr/share/doc/LLVM/clang. So we have
443 just to move it. -->
[18a65e61]444 <para>
[7975c68a]445 If you have built the llvm documentation, it has been installed
[3e8c126]446 by the above command, but it needs to be moved. As the
447 <systemitem class="username">root</systemitem> user:
[3349c8e]448 </para>
449
[a42c273]450<screen role="root"
[9a599135]451 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
452mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-&llvm-version; &amp;&amp;
453rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]454
[abdc2e6]455 <para>
[3e8c126]456 If you have built the clang documentation, it has been installed, but
457 needs to be moved too. Again as the
458 <systemitem class="username">root</systemitem> user:
[abdc2e6]459 </para>
460
[a42c273]461<screen role="root"
[9a599135]462 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
463mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-&llvm-version; &amp;&amp;
464rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]465
466 </sect2>
[abdc2e6]467
[5889b252]468 <sect2 role="commands">
469 <title>Command Explanations</title>
470
471 <para>
[599c6d0]472 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch allows
[5889b252]473 <application>LLVM</application> to use
[ce8983d8]474 <application>libffi</application>.
[5889b252]475 </para>
476
[4e845a4]477 <para>
[599c6d0]478 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: This switch builds
479 the libraries as static and links all of them into an unique shared one.
480 This is the recommended way of building a shared library.
[4e845a4]481 </para>
482
[5889b252]483 <para>
[3349c8e]484 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
485 compiler optimizations in order to speed up the code and reduce its size.
[8558044]486 It also disables some compile checks which are not necessary on a
[11eb3ae5]487 production system.
[5889b252]488 </para>
489
[b3b7e36]490 <para>
[8e9b706]491 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
[3349c8e]492 switch enables building for the same target as the host, and also for
[8e9b706]493 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
[599c6d0]494 target is required to build <xref linkend="v4l-utils"/>. The Default is
495 all of the targets. You can use a semicolon separated list. Valid targets
[8558044]496 are: host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore,
[599c6d0]497 M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend, or all.
[b3b7e36]498 </para>
499
[5889b252]500 <para>
[bb0652ca]501 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]502 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
503 linking the tools against the shared library instead of the static ones.
[9a599135]504 It slightly reduces their size and also ensures that llvm-config
505 will correctly use libLLVM-&llvm-maj-version;.so.
[4e845a4]506 </para>
507
[b3f053c5]508 <para>
[8558044]509 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: This switch is used to
510 build LLVM with run-time type information. This is required for building
[b3f053c5]511 <xref linkend="mesa"/>.
512 </para>
513
[76bec58]514 <para>
[599c6d0]515 <parameter>-DLLVM_BINUTILS_INCDIR=/usr/include</parameter>: This switch
[8558044]516 is used to tell the build system the location of binutils headers,
[599c6d0]517 which were installed in LFS. This allows the building of
[76bec58]518 <filename class="libraryfile">LLVMgold.so</filename>, which is needed
519 for building programs with <command>clang</command> and Link Time
520 Optimization (LTO).
521 </para>
522
[3e208e99]523 <para>
[7a9a7b26]524 <parameter>-DLLVM_INCLUDE_BENCHMARKS=OFF</parameter>:
525 is used to disable generation build targets for the LLVM
526 benchmarks. This option requires additional code that
[3e208e99]527 is not currently available.
528 </para>
529
[08c7ccd]530 <para>
531 <parameter>-DCLANG_DEFAULT_PIE_ON_LINUX=ON</parameter>: makes
532 <option>-fpie</option> option the default when compiling programs.
533 Together with the <xref linkend="gASLR"/> feature enabled in the kernel,
534 this defeats some kind of attacks based on known memory layouts.
535 </para>
536
[4e845a4]537 <para>
538 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]539 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
540 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]541 <application>LLVM</application> libraries (about 60) as shared
542 libraries instead of static.
[3349c8e]543 </para>
544
545 <para>
546 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
547 browsable HTML documentation if you have installed <xref
548 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
549 afterwards, and install the generated documentation manually.
[5889b252]550 </para>
551
552 </sect2>
553
[7b74537e]554 <sect2 role="content">
555 <title>Contents</title>
556
557 <segmentedlist>
558 <segtitle>Installed Programs</segtitle>
559 <segtitle>Installed Libraries</segtitle>
560 <segtitle>Installed Directories</segtitle>
561
562 <seglistitem>
[abdc2e6]563 <seg>
[bb6209fc]564 amdgpu-arch,
[754f4c6d]565 analyze-build, bugpoint, c-index-test, clang, clang++ (symlinks to
[d2a21aa]566 clang-&llvm-maj-version;), clang-&llvm-maj-version;, clang-check, clang-cl,
[bf5fb94]567 clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format,
[bb6209fc]568 clang-linker-wrapper,
569 clang-offload-bundler, clang-offload-packager,
[3e8c126]570 clang-refactor, clang-rename, clang-repl, clang-scan-deps,
[109eb9ef]571 diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli,
[3e8c126]572 llvm-addr2line (symlink to llvm-symbolizer),
573 llvm-ar, llvm-as, llvm-bcanalyzer,
[8558044]574 llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat,
575 llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres,
[bb6209fc]576 llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer,
[9a599135]577 llvm-debuginfod, llvm-debuginfod-find,
578 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar),
579 llvm-dwarfdump, llvm-dwarfutil,
580 llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs,
[11eb3ae5]581 llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
[8558044]582 llvm-lib (symlink to llvm-ar), llvm-libtool-darwin, llvm-link,
583 llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml,
[599c6d0]584 llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump,
[3e8c126]585 llvm-opt-report, llvm-otool (symlink to llv-objdump),
586 llvm-pdbutil, llvm-profdata, llvm-profgen,
[8558044]587 llvm-ranlib (symlink to llvm-ar), llvm-rc,
588 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce,
[bb6209fc]589 llvm-remark-size-diff, llvm-remarkutil,
[3e8c126]590 llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress,
591 llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer,
[754f4c6d]592 llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (symlink to
[bb6209fc]593 llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build,
[9a599135]594 scan-build-py, scan-view, split-file, and verify-uselistorder
[abdc2e6]595 </seg>
596 <seg>
[8558044]597 libLLVM.so,
[bb6209fc]598 libLLVM*.a (100 libraries),
[8558044]599 libLTO.so,
600 libRemarks.so,
[693c4d1]601 libclang.so,
[599c6d0]602 libclang-cpp.so,
[bb6209fc]603 libclang*.a (42 libraries),
[76bec58]604 and LLVMgold.so
[abdc2e6]605 </seg>
606 <seg>
[a6221fd]607 /usr/include/{clang,clang-c,llvm,llvm-c},
[3e8c126]608 /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild},
[b7a300f7]609 /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
[11eb3ae5]610 /usr/share/doc/llvm-&llvm-version;
[abdc2e6]611 </seg>
[7b74537e]612 </seglistitem>
613 </segmentedlist>
[abdc2e6]614
[7b74537e]615 <variablelist>
616 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
617 <?dbfo list-presentation="list"?>
618 <?dbhtml list-presentation="table"?>
619
[bb6209fc]620 <varlistentry id="amdgpu-arch">
621 <term><command>amdgpu-arch</command></term>
622 <listitem>
623 <para>
624 lists AMD GPUs installed; at runtime it needs
625 <filename class='libraryfile'>libhsa-runtime64.so</filename>
626 which is not a part of BLFS
627 </para>
628 <indexterm zone="llvm amdgpu-arch">
629 <primary sortas="b-amdgpu-arch">amdgpu-arch</primary>
630 </indexterm>
631 </listitem>
632 </varlistentry>
633
[754f4c6d]634 <varlistentry id="analyze-build">
635 <term><command>analyze-build</command></term>
636 <listitem>
637 <para>
638 is a static analysis tool
639 </para>
640 <indexterm zone="llvm analyze-build">
641 <primary sortas="b-analyze-build">analyze-build</primary>
642 </indexterm>
643 </listitem>
644 </varlistentry>
645
[abdc2e6]646 <varlistentry id="bugpoint">
647 <term><command>bugpoint</command></term>
648 <listitem>
649 <para>
[4c24eb0a]650 is the automatic test case reduction tool
[abdc2e6]651 </para>
652 <indexterm zone="llvm bugpoint">
653 <primary sortas="b-bugpoint">bugpoint</primary>
654 </indexterm>
655 </listitem>
656 </varlistentry>
657
[b7a300f7]658 <varlistentry id="c-index-test">
659 <term><command>c-index-test</command></term>
660 <listitem>
661 <para>
[4c24eb0a]662 is used to test the libclang API and demonstrate its usage
[b7a300f7]663 </para>
664 <indexterm zone="llvm c-index-test">
665 <primary sortas="b-c-index-test">c-index-test</primary>
666 </indexterm>
667 </listitem>
668 </varlistentry>
669
[abdc2e6]670 <varlistentry id="clang">
671 <term><command>clang</command></term>
[7b74537e]672 <listitem>
[abdc2e6]673 <para>
674 is the <application>Clang</application> C, C++,
[4c24eb0a]675 and Objective-C compiler
[abdc2e6]676 </para>
677 <indexterm zone="llvm clang">
678 <primary sortas="b-clang">clang</primary>
[7b74537e]679 </indexterm>
680 </listitem>
681 </varlistentry>
682
[b7a300f7]683 <varlistentry id="clang-check">
684 <term><command>clang-check</command></term>
685 <listitem>
686 <para>
687 is a tool to perform static code analysis and display Abstract
[4c24eb0a]688 Syntax Trees (AST)
[b7a300f7]689 </para>
690 <indexterm zone="llvm clang-check">
691 <primary sortas="b-clang-check">clang-check</primary>
692 </indexterm>
693 </listitem>
694 </varlistentry>
695
[11eb3ae5]696 <varlistentry id="clang-extdef-mapping">
697 <term><command>clang-extdef-mapping</command></term>
698 <listitem>
699 <para>
700 is a tool to collect the USR name and location of external
[4c24eb0a]701 definitions in a source file
[11eb3ae5]702 </para>
703 <indexterm zone="llvm clang-extdef-mapping">
704 <primary sortas="b-clang-extdef-mapping">clang-extdef-mapping</primary>
705 </indexterm>
706 </listitem>
707 </varlistentry>
708
[3349c8e]709 <varlistentry id="clang-format">
710 <term><command>clang-format</command></term>
711 <listitem>
712 <para>
713 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
[4c24eb0a]714 code
[3349c8e]715 </para>
716 <indexterm zone="llvm clang-format">
717 <primary sortas="b-clang-format">clang-format</primary>
718 </indexterm>
719 </listitem>
720 </varlistentry>
721
[9a599135]722 <varlistentry id="clang-linker-wrapper">
723 <term><command>clang-linker-wrapper</command></term>
[11b9fb83]724 <listitem>
725 <para>
[9a599135]726 is a wrapper utility over the host linker
[11b9fb83]727 </para>
[9a599135]728 <indexterm zone="llvm clang-linker-wrapper">
729 <primary sortas="b-clang-linker-wrapper">clang-linker-wrapper</primary>
[11b9fb83]730 </indexterm>
731 </listitem>
732 </varlistentry>
[9a599135]733
[b7a300f7]734 <varlistentry id="clang-offload-bundler">
735 <term><command>clang-offload-bundler</command></term>
736 <listitem>
737 <para>
[246a7c53]738 is a tool to bundle/unbundle OpenMP offloaded files associated with
[4c24eb0a]739 a common source file
[b7a300f7]740 </para>
741 <indexterm zone="llvm clang-offload-bundler">
742 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
743 </indexterm>
744 </listitem>
745 </varlistentry>
746
[9a599135]747 <varlistentry id="clang-offload-packager">
748 <term><command>clang-offload-packager</command></term>
749 <listitem>
750 <para>
751 is a tool to bundle several object files into a single binary,
752 which can then be used to create a fatbinary containing offloading
753 code
754 </para>
755 <indexterm zone="llvm clang-offload-packager">
756 <primary sortas="b-clang-offload-packager">clang-offload-packager</primary>
757 </indexterm>
758 </listitem>
759 </varlistentry>
760
[11b9fb83]761 <varlistentry id="clang-refactor">
762 <term><command>clang-refactor</command></term>
763 <listitem>
764 <para>
[4c24eb0a]765 is a Clang-based refactoring tool for C, C++ and Objective-C
[11b9fb83]766 </para>
767 <indexterm zone="llvm clang-refactor">
768 <primary sortas="b-clang-refactor">clang-refactor</primary>
769 </indexterm>
770 </listitem>
771 </varlistentry>
772
[b7a300f7]773 <varlistentry id="clang-rename">
774 <term><command>clang-rename</command></term>
775 <listitem>
776 <para>
[4c24eb0a]777 is a tool to rename symbols in C/C++ programs
[b7a300f7]778 </para>
779 <indexterm zone="llvm clang-rename">
780 <primary sortas="b-clang-rename">clang-rename</primary>
781 </indexterm>
782 </listitem>
783 </varlistentry>
784
[11eb3ae5]785 <varlistentry id="clang-scan-deps">
786 <term><command>clang-scan-deps</command></term>
787 <listitem>
788 <para>
[4c24eb0a]789 is a tool to scan for dependencies in a source file
[11eb3ae5]790 </para>
791 <indexterm zone="llvm clang-scan-deps">
792 <primary sortas="b-clang-scan-deps">clang-scan-deps</primary>
793 </indexterm>
794 </listitem>
795 </varlistentry>
796
[11b9fb83]797 <varlistentry id="diagtool">
798 <term><command>diagtool</command></term>
799 <listitem>
800 <para>
[4c24eb0a]801 is a combination of tools for dealing with diagnostics in clang
[11b9fb83]802 </para>
803 <indexterm zone="llvm diagtool">
804 <primary sortas="b-diagtool">diagtool</primary>
805 </indexterm>
806 </listitem>
807 </varlistentry>
808
[109eb9ef]809 <varlistentry id="FileCheck">
810 <term><command>FileCheck</command></term>
811 <listitem>
812 <para>
[54d58907]813 is a tool that reads two files (one from standard input,
[109eb9ef]814 and one specified on the command line) and uses one to verify the other.
815 </para>
816 <indexterm zone="llvm FileCheck">
817 <primary sortas="b-FileCheck">FileCheck</primary>
818 </indexterm>
819 </listitem>
820 </varlistentry>
821
[11b9fb83]822 <varlistentry id="dsymutil">
823 <term><command>dsymutil</command></term>
824 <listitem>
825 <para>
826 is a tool used to manipulate archived DWARF debug symbol files,
[4c24eb0a]827 compatible with the Darwin command <command>dsymutil</command>
[11b9fb83]828 </para>
829 <indexterm zone="llvm dsymutil">
830 <primary sortas="b-dsymutil">dsymutil</primary>
831 </indexterm>
832 </listitem>
833 </varlistentry>
834
[b7a300f7]835 <varlistentry id="git-clang-format">
836 <term><command>git-clang-format</command></term>
837 <listitem>
838 <para>
839 runs clang-format on git generated patches (requires
840 <xref linkend="git"/>)
841 </para>
842 <indexterm zone="llvm git-clang-format">
843 <primary sortas="b-git-clang-format">git-clang-format</primary>
844 </indexterm>
845 </listitem>
846 </varlistentry>
847
[11b9fb83]848 <varlistentry id="hmaptool">
849 <term><command>hmaptool</command></term>
850 <listitem>
851 <para>
[4c24eb0a]852 is a Python tool to dump and construct header maps
[11b9fb83]853 </para>
854 <indexterm zone="llvm hmaptool">
855 <primary sortas="b-hmaptool">hmaptool</primary>
856 </indexterm>
857 </listitem>
858 </varlistentry>
859
[bb6209fc]860 <varlistentry id="intercept-build">
861 <term><command>intercept-build</command></term>
862 <listitem>
863 <para>
864 generates a database of build commands for a project
865 </para>
866 <indexterm zone="llvm intercept-build">
867 <primary sortas="b-intercept-build">intercept-build</primary>
868 </indexterm>
869 </listitem>
870 </varlistentry>
871
[abdc2e6]872 <varlistentry id="llc">
873 <term><command>llc</command></term>
[7b74537e]874 <listitem>
[abdc2e6]875 <para>
[4c24eb0a]876 is the <application>LLVM</application> static compiler
[abdc2e6]877 </para>
878 <indexterm zone="llvm llc">
879 <primary sortas="b-llc">llc</primary>
880 </indexterm>
881 </listitem>
882 </varlistentry>
883
884 <varlistentry id="lli">
885 <term><command>lli</command></term>
886 <listitem>
887 <para>
888 is used to directly execute programs from
[4c24eb0a]889 <application>LLVM</application> bitcode
[abdc2e6]890 </para>
891 <indexterm zone="llvm lli">
892 <primary sortas="b-lli">lli</primary>
893 </indexterm>
894 </listitem>
895 </varlistentry>
896
[11eb3ae5]897 <varlistentry id="llvm-addr2line">
898 <term><command>llvm-addr2line</command></term>
899 <listitem>
900 <para>
901 is a tool used to convert addresses into file names and line
[4c24eb0a]902 numbers
[11eb3ae5]903 </para>
904 <indexterm zone="llvm llvm-addr2line">
905 <primary sortas="b-llvm-addr2line">llvm-addr2line</primary>
906 </indexterm>
907 </listitem>
908 </varlistentry>
909
[abdc2e6]910 <varlistentry id="llvm-ar">
911 <term><command>llvm-ar</command></term>
912 <listitem>
913 <para>
[4c24eb0a]914 is the <application>LLVM</application> archiver
[abdc2e6]915 </para>
916 <indexterm zone="llvm llvm-ar">
917 <primary sortas="b-llvm-ar">llvm-ar</primary>
918 </indexterm>
919 </listitem>
920 </varlistentry>
921
922 <varlistentry id="llvm-as">
923 <term><command>llvm-as</command></term>
924 <listitem>
925 <para>
[4c24eb0a]926 is the <application>LLVM</application> assembler
[abdc2e6]927 </para>
928 <indexterm zone="llvm llvm-as">
929 <primary sortas="b-llvm-as">llvm-as</primary>
930 </indexterm>
931 </listitem>
932 </varlistentry>
933
934 <varlistentry id="llvm-bcanalyzer">
935 <term><command>llvm-bcanalyzer</command></term>
936 <listitem>
937 <para>
[4c24eb0a]938 is the <application>LLVM</application> bitcode analyzer
[abdc2e6]939 </para>
940 <indexterm zone="llvm llvm-bcanalyzer">
941 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
942 </indexterm>
943 </listitem>
944 </varlistentry>
945
[599c6d0]946 <varlistentry id="llvm-bitcode-strip">
947 <term><command>llvm-bitcode-strip</command></term>
948 <listitem>
949 <para>
950 strips LLVM bitcode from an object
951 </para>
952 <indexterm zone="llvm llvm-bitcode-strip">
953 <primary sortas="b-llvm-bitcode-strip">llvm-bitcode-strip</primary>
954 </indexterm>
955 </listitem>
956 </varlistentry>
957
[b7a300f7]958 <varlistentry id="llvm-cat">
959 <term><command>llvm-cat</command></term>
960 <listitem>
961 <para>
[4c24eb0a]962 is a tool to concatenate llvm modules
[b7a300f7]963 </para>
964 <indexterm zone="llvm llvm-cat">
965 <primary sortas="b-llvm-cat">llvm-cat</primary>
966 </indexterm>
967 </listitem>
968 </varlistentry>
969
[11b9fb83]970 <varlistentry id="llvm-cfi-verify">
971 <term><command>llvm-cfi-verify</command></term>
972 <listitem>
973 <para>
974 identifies whether Control Flow Integrity protects all indirect
975 control flow instructions in the provided object file, DSO, or
[4c24eb0a]976 binary
[11b9fb83]977 </para>
978 <indexterm zone="llvm llvm-cfi-verify">
979 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
980 </indexterm>
981 </listitem>
982 </varlistentry>
983
[abdc2e6]984 <varlistentry id="llvm-config">
985 <term><command>llvm-config</command></term>
986 <listitem>
987 <para>
[4c24eb0a]988 Prints <application>LLVM</application> compilation options
[abdc2e6]989 </para>
990 <indexterm zone="llvm llvm-config">
991 <primary sortas="b-llvm-config">llvm-config</primary>
992 </indexterm>
993 </listitem>
994 </varlistentry>
995
996 <varlistentry id="llvm-cov">
997 <term><command>llvm-cov</command></term>
998 <listitem>
999 <para>
[4c24eb0a]1000 is used to emit coverage information
[abdc2e6]1001 </para>
1002 <indexterm zone="llvm llvm-cov">
1003 <primary sortas="b-llvm-cov">llvm-cov</primary>
1004 </indexterm>
1005 </listitem>
1006 </varlistentry>
1007
[3349c8e]1008 <varlistentry id="llvm-c-test">
1009 <term><command>llvm-c-test</command></term>
1010 <listitem>
1011 <para>
[4c24eb0a]1012 is a bytecode disassembler
[3349c8e]1013 </para>
1014 <indexterm zone="llvm llvm-c-test">
1015 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
1016 </indexterm>
1017 </listitem>
1018 </varlistentry>
1019
[b7a300f7]1020 <varlistentry id="llvm-cvtres">
1021 <term><command>llvm-cvtres</command></term>
1022 <listitem>
1023 <para>
[4c24eb0a]1024 is a tool to convert Microsoft resource files to COFF
[b7a300f7]1025 </para>
1026 <indexterm zone="llvm llvm-cvtres">
1027 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
1028 </indexterm>
1029 </listitem>
1030 </varlistentry>
1031
[b3b7e36]1032 <varlistentry id="llvm-cxxdump">
1033 <term><command>llvm-cxxdump</command></term>
1034 <listitem>
1035 <para>
[4c24eb0a]1036 is used as a C++ ABI Data Dumper
[b3b7e36]1037 </para>
1038 <indexterm zone="llvm llvm-cxxdump">
1039 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
1040 </indexterm>
1041 </listitem>
1042 </varlistentry>
1043
[b7a300f7]1044 <varlistentry id="llvm-cxxfilt">
1045 <term><command>llvm-cxxfilt</command></term>
1046 <listitem>
1047 <para>
[4c24eb0a]1048 is used to demangle C++ symbols in llvm code
[b7a300f7]1049 </para>
1050 <indexterm zone="llvm llvm-cxxfilt">
1051 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
1052 </indexterm>
1053 </listitem>
1054 </varlistentry>
1055
[11eb3ae5]1056 <varlistentry id="llvm-cxxmap">
1057 <term><command>llvm-cxxmap</command></term>
1058 <listitem>
1059 <para>
[4c24eb0a]1060 is used to remap C++ mangled symbols
[11eb3ae5]1061 </para>
1062 <indexterm zone="llvm llvm-cxxmap">
1063 <primary sortas="b-llvm-cxxmap">llvm-cxxmap</primary>
1064 </indexterm>
1065 </listitem>
1066 </varlistentry>
1067
[bb6209fc]1068 <varlistentry id="llvm-debuginfo-analyzer">
1069 <term><command>llvm-debuginfo-analyzer</command></term>
1070 <listitem>
1071 <para>
1072 prints a logical representation of low-level debug information
1073 </para>
1074 <indexterm zone="llvm llvm-debuginfo-analyzer">
1075 <primary sortas="b-llvm-debuginfo-analyzer">llvm-debuginfo-analyzer</primary>
1076 </indexterm>
1077 </listitem>
1078 </varlistentry>
1079
[9a599135]1080 <varlistentry id="llvm-debuginfod">
1081 <term><command>llvm-debuginfod</command></term>
1082 <listitem>
1083 <para>
1084 is a service providing debug information over an HTTP API for
1085 analyzing stripped binaries
1086 </para>
1087 <indexterm zone="llvm llvm-debuginfod">
1088 <primary sortas="b-llvm-debuginfod">llvm-debuginfod</primary>
1089 </indexterm>
1090 </listitem>
1091 </varlistentry>
1092
1093 <varlistentry id="llvm-debuginfod-find">
1094 <term><command>llvm-debuginfod-find</command></term>
1095 <listitem>
1096 <para>
1097 is an interface to the <command>llvm-debuginfod</command> daemon
1098 for finding debuginfod artifacts
1099 </para>
1100 <indexterm zone="llvm llvm-debuginfod-find">
1101 <primary sortas="b-llvm-debuginfod-find">llvm-debuginfod-find</primary>
1102 </indexterm>
1103 </listitem>
1104 </varlistentry>
1105
[abdc2e6]1106 <varlistentry id="llvm-diff">
1107 <term><command>llvm-diff</command></term>
1108 <listitem>
1109 <para>
1110 is the <application>LLVM</application> structural
[4c24eb0a]1111 '<command>diff</command>'
[abdc2e6]1112 </para>
1113 <indexterm zone="llvm llvm-diff">
1114 <primary sortas="b-llvm-diff">llvm-diff</primary>
1115 </indexterm>
1116 </listitem>
1117 </varlistentry>
1118
1119 <varlistentry id="llvm-dis">
1120 <term><command>llvm-dis</command></term>
1121 <listitem>
1122 <para>
[4c24eb0a]1123 is the <application>LLVM</application> disassembler
[abdc2e6]1124 </para>
1125 <indexterm zone="llvm llvm-dis">
1126 <primary sortas="b-llvm-dis">llvm-dis</primary>
1127 </indexterm>
1128 </listitem>
1129 </varlistentry>
1130
[3349c8e]1131 <varlistentry id="llvm-dwarfdump">
1132 <term><command>llvm-dwarfdump</command></term>
1133 <listitem>
1134 <para>
[4c24eb0a]1135 prints the content of DWARF sections in object files
[3349c8e]1136 </para>
1137 <indexterm zone="llvm llvm-dwarfdump">
1138 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
1139 </indexterm>
1140 </listitem>
1141 </varlistentry>
1142
[9a599135]1143 <varlistentry id="llvm-dwarfutil">
1144 <term><command>llvm-dwarfutil</command></term>
1145 <listitem>
1146 <para>
1147 is a tool to copy and manipulate debug info
1148 </para>
1149 <indexterm zone="llvm llvm-dwarfutil">
1150 <primary sortas="b-llvm-dwarfutil">llvm-dwarfutil</primary>
1151 </indexterm>
1152 </listitem>
1153 </varlistentry>
1154
[3349c8e]1155 <varlistentry id="llvm-dwp">
1156 <term><command>llvm-dwp</command></term>
1157 <listitem>
1158 <para>
[4c24eb0a]1159 merges split DWARF files
[3349c8e]1160 </para>
1161 <indexterm zone="llvm llvm-dwp">
1162 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
1163 </indexterm>
1164 </listitem>
1165 </varlistentry>
1166
[11eb3ae5]1167 <varlistentry id="llvm-elfabi">
1168 <term><command>llvm-elfabi</command></term>
1169 <listitem>
1170 <para>
[4c24eb0a]1171 is used to read information about an ELF binary's ABI
[11eb3ae5]1172 </para>
1173 <indexterm zone="llvm llvm-elfabi">
1174 <primary sortas="b-llvm-elfabi">llvm-elfabi</primary>
1175 </indexterm>
1176 </listitem>
1177 </varlistentry>
1178
[11b9fb83]1179 <varlistentry id="llvm-exegesis">
1180 <term><command>llvm-exegesis</command></term>
1181 <listitem>
1182 <para>
1183 is a benchmarking tool that uses information available in LLVM to
1184 measure host machine instruction characteristics like latency or
[4c24eb0a]1185 port decomposition
[11b9fb83]1186 </para>
1187 <indexterm zone="llvm llvm-exegesis">
1188 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
1189 </indexterm>
1190 </listitem>
1191 </varlistentry>
1192
[abdc2e6]1193 <varlistentry id="llvm-extract">
1194 <term><command>llvm-extract</command></term>
1195 <listitem>
1196 <para>
1197 is used to extract a function from an
[4c24eb0a]1198 <application>LLVM</application> module
[abdc2e6]1199 </para>
1200 <indexterm zone="llvm llvm-extract">
1201 <primary sortas="b-llvm-extract">llvm-extract</primary>
1202 </indexterm>
1203 </listitem>
1204 </varlistentry>
1205
[bf5fb94]1206 <varlistentry id="llvm-gsymutil">
1207 <term><command>llvm-gsymutil</command></term>
1208 <listitem>
1209 <para>
1210 is used to process GSYM Symbolication Format files which
1211 convert memory addresses to function name and source file
[4c24eb0a]1212 line. These files are smaller than DWARF or Breakpad files
[bf5fb94]1213 </para>
1214 <indexterm zone="llvm llvm-gsymutil">
1215 <primary sortas="b-llvm-gsymutil">llvm-gsymutil</primary>
1216 </indexterm>
1217 </listitem>
1218 </varlistentry>
1219
[11eb3ae5]1220 <varlistentry id="llvm-ifs">
1221 <term><command>llvm-ifs</command></term>
1222 <listitem>
1223 <para>
[4c24eb0a]1224 is used to merge interface stubs with object files
[11eb3ae5]1225 </para>
1226 <indexterm zone="llvm llvm-ifs">
1227 <primary sortas="b-llvm-ifs">llvm-ifs</primary>
1228 </indexterm>
1229 </listitem>
1230 </varlistentry>
1231
1232 <varlistentry id="llvm-install-name-tool">
1233 <term><command>llvm-install-name-tool</command></term>
1234 <listitem>
1235 <para>
[4c24eb0a]1236 is used to rewrite load commands into MachO binary format
[11eb3ae5]1237 </para>
1238 <indexterm zone="llvm llvm-install-name-tool">
1239 <primary sortas="b-llvm-install-name-tool">llvm-install-name-tool</primary>
1240 </indexterm>
1241 </listitem>
1242 </varlistentry>
1243
1244 <varlistentry id="llvm-jitlink">
1245 <term><command>llvm-jitlink</command></term>
1246 <listitem>
1247 <para>
1248 is used to parse relocatable object files to make their contents
[4c24eb0a]1249 executable in a target process
[11eb3ae5]1250 </para>
1251 <indexterm zone="llvm llvm-jitlink">
1252 <primary sortas="b-llvm-jitlink">llvm-jitlink</primary>
1253 </indexterm>
1254 </listitem>
1255 </varlistentry>
1256
[599c6d0]1257 <varlistentry id="llvm-libtool-darwin">
1258 <term><command>llvm-libtool-darwin</command></term>
1259 <listitem>
1260 <para>
1261 provides basic libtool functionality on Darwin-based systems.
1262 This is mostly useful if you are generating binaries for macOS
1263 systems
1264 </para>
1265 <indexterm zone="llvm llvm-libtool-darwin">
1266 <primary sortas="b-llvm-libtool-darwin">llvm-libtool-darwin</primary>
1267 </indexterm>
1268 </listitem>
1269 </varlistentry>
1270
[abdc2e6]1271 <varlistentry id="llvm-link">
1272 <term><command>llvm-link</command></term>
1273 <listitem>
1274 <para>
[4c24eb0a]1275 is the <application>LLVM</application> linker
[abdc2e6]1276 </para>
1277 <indexterm zone="llvm llvm-link">
1278 <primary sortas="b-llvm-link">llvm-link</primary>
1279 </indexterm>
1280 </listitem>
1281 </varlistentry>
1282
[11eb3ae5]1283 <varlistentry id="llvm-lipo">
1284 <term><command>llvm-lipo</command></term>
1285 <listitem>
1286 <para>
[4c24eb0a]1287 is used to create universal binaries from MachO files
[11eb3ae5]1288 </para>
1289 <indexterm zone="llvm llvm-lipo">
1290 <primary sortas="b-llvm-lipo">llvm-lipo</primary>
1291 </indexterm>
1292 </listitem>
1293 </varlistentry>
1294
[3349c8e]1295 <varlistentry id="llvm-lto">
1296 <term><command>llvm-lto</command></term>
1297 <listitem>
1298 <para>
1299 is the <application>LLVM</application> LTO (link time optimization)
[4c24eb0a]1300 linker
[3349c8e]1301 </para>
1302 <indexterm zone="llvm llvm-lto">
1303 <primary sortas="b-llvm-lto">llvm-lto</primary>
1304 </indexterm>
1305 </listitem>
1306 </varlistentry>
1307
[b7a300f7]1308 <varlistentry id="llvm-lto2">
1309 <term><command>llvm-lto2</command></term>
1310 <listitem>
1311 <para>
[4c24eb0a]1312 is a test harness for the resolution based LTO interface
[b7a300f7]1313 </para>
1314 <indexterm zone="llvm llvm-lto2">
1315 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
1316 </indexterm>
1317 </listitem>
1318 </varlistentry>
1319
[3349c8e]1320 <varlistentry id="llvm-mc">
1321 <term><command>llvm-mc</command></term>
1322 <listitem>
1323 <para>
[4c24eb0a]1324 is a standalone machine code assembler/disassembler
[3349c8e]1325 </para>
1326 <indexterm zone="llvm llvm-mc">
1327 <primary sortas="b-llvm-mc">llvm-mc</primary>
1328 </indexterm>
1329 </listitem>
1330 </varlistentry>
1331
[11b9fb83]1332 <varlistentry id="llvm-mca">
1333 <term><command>llvm-mca</command></term>
1334 <listitem>
1335 <para>
[c5e3c1c]1336 is a performance analysis tool to statically measure the
[4c24eb0a]1337 performance of machine code
[11b9fb83]1338 </para>
1339 <indexterm zone="llvm llvm-mca">
1340 <primary sortas="b-llvm-mca">llvm-mca</primary>
1341 </indexterm>
1342 </listitem>
1343 </varlistentry>
1344
1345<!-- <varlistentry id="llvm-mcmarkup">
[b7a300f7]1346 <term><command>llvm-mcmarkup</command></term>
1347 <listitem>
1348 <para>
1349 is a parser for machine code markup.
1350 </para>
1351 <indexterm zone="llvm llvm-mcmarkup">
1352 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
1353 </indexterm>
1354 </listitem>
[11b9fb83]1355 </varlistentry>-->
[b7a300f7]1356
[c5e3c1c]1357 <varlistentry id="llvm-ml">
1358 <term><command>llvm-ml</command></term>
1359 <listitem>
1360 <para>
[4c24eb0a]1361 is a playground for machine code provided by LLVM
[c5e3c1c]1362 </para>
1363 <indexterm zone="llvm llvm-ml">
1364 <primary sortas="b-llvm-ml">llvm-ml</primary>
1365 </indexterm>
1366 </listitem>
1367 </varlistentry>
1368
[b7a300f7]1369 <varlistentry id="llvm-modextract">
1370 <term><command>llvm-modextract</command></term>
1371 <listitem>
1372 <para>
[4c24eb0a]1373 is a tool to extract one module from multimodule bitcode files
[b7a300f7]1374 </para>
1375 <indexterm zone="llvm llvm-modextract">
1376 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
1377 </indexterm>
1378 </listitem>
1379 </varlistentry>
1380
1381 <varlistentry id="llvm-mt">
1382 <term><command>llvm-mt</command></term>
1383 <listitem>
1384 <para>
1385 is a tool to generate signed files and catalogs from a
[4c24eb0a]1386 side-by-side assembly manifest (used for Microsoft SDK)
[b7a300f7]1387 </para>
1388 <indexterm zone="llvm llvm-mt">
1389 <primary sortas="b-llvm-mt">llvm-mt</primary>
1390 </indexterm>
1391 </listitem>
1392 </varlistentry>
1393
[abdc2e6]1394 <varlistentry id="llvm-nm">
1395 <term><command>llvm-nm</command></term>
1396 <listitem>
1397 <para>
1398 is used to list <application>LLVM</application> bitcode
[4c24eb0a]1399 and object file's symbol table
[abdc2e6]1400 </para>
1401 <indexterm zone="llvm llvm-nm">
1402 <primary sortas="b-llvm-nm">llvm-nm</primary>
1403 </indexterm>
1404 </listitem>
1405 </varlistentry>
[b3b7e36]1406
[11b9fb83]1407 <varlistentry id="llvm-objcopy">
1408 <term><command>llvm-objcopy</command></term>
1409 <listitem>
1410 <para>
[4c24eb0a]1411 is LLVM's version of an objcopy tool
[11b9fb83]1412 </para>
1413 <indexterm zone="llvm llvm-objcopy">
1414 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
1415 </indexterm>
1416 </listitem>
1417 </varlistentry>
1418
[3349c8e]1419 <varlistentry id="llvm-objdump">
1420 <term><command>llvm-objdump</command></term>
1421 <listitem>
1422 <para>
[4c24eb0a]1423 is an <application>LLVM</application> object file dumper
[3349c8e]1424 </para>
1425 <indexterm zone="llvm llvm-objdump">
1426 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
1427 </indexterm>
1428 </listitem>
1429 </varlistentry>
1430
[b7a300f7]1431 <varlistentry id="llvm-opt-report">
1432 <term><command>llvm-opt-report</command></term>
1433 <listitem>
1434 <para>
1435 is a tool to generate an optimization report from YAML optimization
[4c24eb0a]1436 record files
[b7a300f7]1437 </para>
1438 <indexterm zone="llvm llvm-opt-report">
1439 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
1440 </indexterm>
1441 </listitem>
1442 </varlistentry>
1443
1444 <varlistentry id="llvm-pdbutil">
1445 <term><command>llvm-pdbutil</command></term>
[b3b7e36]1446 <listitem>
1447 <para>
[4c24eb0a]1448 is a PDB (Program Database) dumper. PDB is a Microsoft format
[b3b7e36]1449 </para>
[b7a300f7]1450 <indexterm zone="llvm llvm-pdbutil">
1451 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]1452 </indexterm>
1453 </listitem>
1454 </varlistentry>
[3349c8e]1455
1456 <varlistentry id="llvm-profdata">
1457 <term><command>llvm-profdata</command></term>
[abdc2e6]1458 <listitem>
1459 <para>
[4c24eb0a]1460 is a small tool to manipulate and print profile data files
[abdc2e6]1461 </para>
[3349c8e]1462 <indexterm zone="llvm llvm-profdata">
1463 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]1464 </indexterm>
1465 </listitem>
[3349c8e]1466 </varlistentry>
[abdc2e6]1467
[599c6d0]1468 <varlistentry id="llvm-profgen">
1469 <term><command>llvm-profgen</command></term>
1470 <listitem>
1471 <para>
1472 generates LLVM SPGO profiling information
1473 </para>
1474 <indexterm zone="llvm llvm-profgen">
1475 <primary sortas="b-llvm-profgen">llvm-profgen</primary>
1476 </indexterm>
1477 </listitem>
1478 </varlistentry>
1479
[abdc2e6]1480 <varlistentry id="llvm-ranlib">
1481 <term><command>llvm-ranlib</command></term>
1482 <listitem>
1483 <para>
[3fdc9b0]1484 is used to generate an index for a <application>LLVM</application>
[4c24eb0a]1485 archive
[abdc2e6]1486 </para>
1487 <indexterm zone="llvm llvm-ranlib">
1488 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
1489 </indexterm>
1490 </listitem>
1491 </varlistentry>
1492
[11b9fb83]1493 <varlistentry id="llvm-rc">
1494 <term><command>llvm-rc</command></term>
1495 <listitem>
1496 <para>
1497 is a platform-independent tool to compile resource scripts
[4c24eb0a]1498 into binary resource files
[11b9fb83]1499 </para>
1500 <indexterm zone="llvm llvm-rc">
1501 <primary sortas="b-llvm-rc">llvm-rc</primary>
1502 </indexterm>
1503 </listitem>
1504 </varlistentry>
1505
[3349c8e]1506 <varlistentry id="llvm-readobj">
1507 <term><command>llvm-readobj</command></term>
1508 <listitem>
1509 <para>
[4c24eb0a]1510 displays low-level format-specific information about object files
[3349c8e]1511 </para>
1512 <indexterm zone="llvm llvm-readobj">
1513 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1514 </indexterm>
1515 </listitem>
1516 </varlistentry>
1517
[11eb3ae5]1518 <varlistentry id="llvm-reduce">
1519 <term><command>llvm-reduce</command></term>
1520 <listitem>
1521 <para>
1522 is used to automatically reduce testcases
[4c24eb0a]1523 when running a test suite
[11eb3ae5]1524 </para>
1525 <indexterm zone="llvm llvm-reduce">
1526 <primary sortas="b-llvm-reduce">llvm-reduce</primary>
1527 </indexterm>
1528 </listitem>
1529 </varlistentry>
1530
[9a599135]1531 <varlistentry id="llvm-remark-size-diff">
1532 <term><command>llvm-remark-size-diff</command></term>
1533 <listitem>
1534 <para>
1535 reports the difference in instruction count and stack size
1536 remarks between two remark files
1537 </para>
1538 <indexterm zone="llvm llvm-remark-size-diff">
1539 <primary sortas="b-llvm-remark-size-diff">llvm-remark-size-diff</primary>
1540 </indexterm>
1541 </listitem>
1542 </varlistentry>
1543
[bb6209fc]1544 <varlistentry id="llvm-remarkutil">
1545 <term><command>llvm-remarkutil</command></term>
1546 <listitem>
1547 <para>
1548 converts remark files between bitstream and YAML; or prints
1549 function instruction count information in remark files
1550 </para>
1551 <indexterm zone="llvm llvm-remark-size-diff">
1552 <primary sortas="b-llvm-remark-size-diff">llvm-remark-size-diff</primary>
1553 </indexterm>
1554 </listitem>
1555 </varlistentry>
1556
[3349c8e]1557 <varlistentry id="llvm-rtdyld">
1558 <term><command>llvm-rtdyld</command></term>
1559 <listitem>
1560 <para>
[4c24eb0a]1561 is the <application>LLVM</application> MC-JIT tool
[3349c8e]1562 </para>
1563 <indexterm zone="llvm llvm-rtdyld">
1564 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1565 </indexterm>
1566 </listitem>
1567 </varlistentry>
1568
1569 <varlistentry id="llvm-size">
1570 <term><command>llvm-size</command></term>
1571 <listitem>
1572 <para>
[4c24eb0a]1573 is the <application>LLVM</application> object size dumper
[3349c8e]1574 </para>
1575 <indexterm zone="llvm llvm-size">
1576 <primary sortas="b-llvm-size">llvm-size</primary>
1577 </indexterm>
1578 </listitem>
1579 </varlistentry>
1580
1581 <varlistentry id="llvm-split">
1582 <term><command>llvm-split</command></term>
1583 <listitem>
1584 <para>
[4c24eb0a]1585 is the <application>LLVM</application> module splitter
[3349c8e]1586 </para>
1587 <indexterm zone="llvm llvm-split">
1588 <primary sortas="b-llvm-split">llvm-split</primary>
1589 </indexterm>
1590 </listitem>
1591 </varlistentry>
1592
[abdc2e6]1593 <varlistentry id="llvm-stress">
1594 <term><command>llvm-stress</command></term>
1595 <listitem>
1596 <para>
1597 is used to generate random
[4c24eb0a]1598 <filename class="extension">.ll</filename> files
[abdc2e6]1599 </para>
1600 <indexterm zone="llvm llvm-stress">
1601 <primary sortas="b-llvm-stress">llvm-stress</primary>
1602 </indexterm>
1603 </listitem>
1604 </varlistentry>
1605
[b7a300f7]1606 <varlistentry id="llvm-strings">
1607 <term><command>llvm-strings</command></term>
1608 <listitem>
1609 <para>
1610 print strings found in a binary (object file, executable, or
[4c24eb0a]1611 archive library)
[b7a300f7]1612 </para>
1613 <indexterm zone="llvm llvm-strings">
1614 <primary sortas="b-llvm-strings">llvm-strings</primary>
1615 </indexterm>
1616 </listitem>
1617 </varlistentry>
1618
[3349c8e]1619 <varlistentry id="llvm-symbolizer">
1620 <term><command>llvm-symbolizer</command></term>
1621 <listitem>
1622 <para>
[b3443239]1623 converts addresses into source code locations
[3349c8e]1624 </para>
1625 <indexterm zone="llvm llvm-symbolizer">
1626 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1627 </indexterm>
1628 </listitem>
1629 </varlistentry>
1630
[abdc2e6]1631 <varlistentry id="llvm-tblgen">
1632 <term><command>llvm-tblgen</command></term>
1633 <listitem>
1634 <para>
1635 is the <application>LLVM</application> Target Description
[4c24eb0a]1636 To C++ Code Generator
[abdc2e6]1637 </para>
1638 <indexterm zone="llvm llvm-tblgen">
1639 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1640 </indexterm>
1641 </listitem>
1642 </varlistentry>
1643
[754f4c6d]1644 <varlistentry id="llvm-tli-checker">
1645 <term><command>llvm-tli-checker</command></term>
1646 <listitem>
1647 <para>
1648 is the <application>LLVM</application> TargetLibraryInfo
1649 versus SDK checker
1650 </para>
1651 <indexterm zone="llvm llvm-tli-checker">
1652 <primary sortas="b-llvm-tli-checker">llvm-tli-checker</primary>
1653 </indexterm>
1654 </listitem>
1655 </varlistentry>
1656
[11b9fb83]1657 <varlistentry id="llvm-undname">
1658 <term><command>llvm-undname</command></term>
1659 <listitem>
1660 <para>
[4c24eb0a]1661 is a tool to demangle names
[11b9fb83]1662 </para>
1663 <indexterm zone="llvm llvm-undname">
1664 <primary sortas="b-llvm-undname">llvm-undname</primary>
1665 </indexterm>
1666 </listitem>
1667 </varlistentry>
1668
[b7a300f7]1669 <varlistentry id="llvm-xray">
1670 <term><command>llvm-xray</command></term>
1671 <listitem>
1672 <para>
[4c24eb0a]1673 is an implementation of Google's XRay function call tracing system
[b7a300f7]1674 </para>
1675 <indexterm zone="llvm llvm-xray">
1676 <primary sortas="b-llvm-xray">llvm-xray</primary>
1677 </indexterm>
1678 </listitem>
1679 </varlistentry>
1680
[bb6209fc]1681 <varlistentry id="nvptx-arch">
1682 <term><command>nvptx-arch</command></term>
[39dd48b]1683 <listitem>
1684 <para>
[bb6209fc]1685 lists NVIDIA GPUs installed; at runtime it needs
1686 <filename class='libraryfile'>libcuda.so</filename>
1687 which is not a part of BLFS
[39dd48b]1688 </para>
[bb6209fc]1689 <indexterm zone="llvm nvptx-arch">
1690 <primary sortas="b-nvptx-arch">nvptx-arch</primary>
[39dd48b]1691 </indexterm>
1692 </listitem>
1693 </varlistentry>
[9a599135]1694
[abdc2e6]1695 <varlistentry id="opt">
1696 <term><command>opt</command></term>
1697 <listitem>
1698 <para>
[4c24eb0a]1699 is the <application>LLVM</application> optimizer
[abdc2e6]1700 </para>
1701 <indexterm zone="llvm opt">
1702 <primary sortas="b-opt">opt</primary>
1703 </indexterm>
1704 </listitem>
1705 </varlistentry>
1706
[3349c8e]1707 <varlistentry id="sancov">
1708 <term><command>sancov</command></term>
1709 <listitem>
1710 <para>
[4c24eb0a]1711 is the sanitizer coverage processing tool
[3349c8e]1712 </para>
1713 <indexterm zone="llvm sancov">
1714 <primary sortas="b-sancov">sancov</primary>
1715 </indexterm>
1716 </listitem>
1717 </varlistentry>
1718
[b4c31a6]1719 <varlistentry id="sanstats">
1720 <term><command>sanstats</command></term>
1721 <listitem>
1722 <para>
[4c24eb0a]1723 is the sanitizer statistics processing tool
[b4c31a6]1724 </para>
1725 <indexterm zone="llvm sanstats">
1726 <primary sortas="b-sanstats">sanstats</primary>
1727 </indexterm>
1728 </listitem>
1729 </varlistentry>
1730
[70251fc]1731 <varlistentry id="scan-build">
1732 <term><command>scan-build</command></term>
1733 <listitem>
1734 <para>
1735 is a <application>Perl</application> script that invokes the
[4c24eb0a]1736 <application>Clang</application> static analyzer
[70251fc]1737 </para>
1738 <indexterm zone="llvm scan-build">
1739 <primary sortas="b-scan-build">scan-build</primary>
[39dd48b]1740 </indexterm>
1741 </listitem>
1742 </varlistentry>
1743
[9a599135]1744 <varlistentry id="scan-build-py">
1745 <term><command>scan-build-py</command></term>
1746 <listitem>
1747 <para>
1748 is a <application>Python</application> script that invokes the
1749 <application>Clang</application> static analyzer
1750 </para>
1751 <indexterm zone="llvm scan-build-py">
1752 <primary sortas="b-scan-build-py">scan-build-py</primary>
1753 </indexterm>
1754 </listitem>
1755 </varlistentry>
1756
[3349c8e]1757 <varlistentry id="scan-view">
1758 <term><command>scan-view</command></term>
1759 <listitem>
1760 <para>
1761 is a viewer for <application>Clang</application> static analyzer
[4c24eb0a]1762 results
[3349c8e]1763 </para>
1764 <indexterm zone="llvm scan-view">
1765 <primary sortas="b-scan-view">scan-view</primary>
1766 </indexterm>
1767 </listitem>
1768 </varlistentry>
1769
[599c6d0]1770 <varlistentry id="split-file">
1771 <term><command>split-file</command></term>
1772 <listitem>
1773 <para>
1774 splits an input file into multiple parts separated by regex
1775 </para>
1776 <indexterm zone="llvm split-file">
1777 <primary sortas="b-split-file">split-file</primary>
1778 </indexterm>
1779 </listitem>
1780 </varlistentry>
1781
[3349c8e]1782 <varlistentry id="verify-uselistorder">
1783 <term><command>verify-uselistorder</command></term>
1784 <listitem>
1785 <para>
1786 is the <application>LLVM</application> tool to verify use-list
[4c24eb0a]1787 order
[3349c8e]1788 </para>
1789 <indexterm zone="llvm verify-uselistorder">
1790 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1791 </indexterm>
1792 </listitem>
1793 </varlistentry>
1794
[599c6d0]1795<!-- Removed in 12.0.0
[39dd48b]1796 <varlistentry id="yaml2obj">
1797 <term><command>yaml2obj</command></term>
1798 <listitem>
1799 <para>
1800 takes a YAML representation of an object file and converts it
[4c24eb0a]1801 to a binary file
[39dd48b]1802 </para>
1803 <indexterm zone="llvm yaml2obj">
1804 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1805 </indexterm>
1806 </listitem>
1807 </varlistentry>
[599c6d0]1808-->
[3349c8e]1809<!--
[abdc2e6]1810 <varlistentry id="libllvm">
1811 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1812 <listitem>
1813 <para>
1814 contains the <application>LLVM</application> API functions.
1815 </para>
1816 <indexterm zone="llvm libllvm">
1817 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1818 </indexterm>
1819 </listitem>
1820 </varlistentry>
[3349c8e]1821
[abdc2e6]1822 <varlistentry id="libprofile_rt">
1823 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1824 <listitem>
1825 <para>
1826 is the C, C++ and Objective-C runtime library for
1827 <application>Clang</application>.
1828 </para>
1829 <indexterm zone="llvm libprofile_rt">
1830 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
[7b74537e]1831 </indexterm>
1832 </listitem>
[0f5ca44]1833 </varlistentry>-->
[7b74537e]1834
1835 </variablelist>
[abdc2e6]1836
[7b74537e]1837 </sect2>
1838
1839</sect1>
Note: See TracBrowser for help on using the repository browser.