%general-entities; ]> $LastChangedBy$ $Date$ LLVM-&llvm-version; LLVM Introduction to LLVM The LLVM package contains a collection of modular and reusable compiler and toolchain technologies. The Low Level Virtual Machine (LLVM) Core libraries provide a modern source and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!). These libraries are built around a well specified code representation known as the LLVM intermediate representation ("LLVM IR"). The optional Clang and Compiler RT packages provide a new C, C++, Objective C and Objective C++ front-ends and runtime libraries for the LLVM. &lfs76_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &llvm-md5sum; Download size: &llvm-size; Estimated disk space required: &llvm-buildsize; Estimated build time: &llvm-time; Optional Downloads Clang Download: Download MD5 sum: &clang-md5sum; Download size: &clang-size; Compiler RT Download: Download MD5 sum: &compiler-rt-md5sum; Download size: &compiler-rt-size; LLVM Dependencies Recommended and Optional , , , , , , , OCaml, and Sphinx User Notes: Installation of LLVM If you have downloaded the optional packages, install them into the source tree by running the following commands: tar -xf ../cfe-&llvm-version;.src.tar.xz -C tools && tar -xf ../compiler-rt-&rt-version;.src.tar.xz -C projects && mv tools/cfe-&llvm-version;.src tools/clang && mv projects/compiler-rt-&rt-version;.src projects/compiler-rt Install LLVM by running the following commands: sed -i '/Support/ iLLVMLibsOptions := ../../lib/IR/Release*/Pass.o' \ tools/bugpoint/Makefile tools/opt/Makefile && sed -e "s:/docs/llvm:/share/doc/llvm-&llvm-version;:" \ -i Makefile.config.in && CC=gcc CXX=g++ \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-libffi \ --enable-optimized \ --enable-shared \ --disable-assertions && make If you have installed Sphinx and wish to generate manual pages, issue the following command: make -C docs -f Makefile.sphinx man To test the results, issue: make check. Now, as the root user: make install && for file in /usr/lib/lib{clang,LLVM,LTO}*.a do test -f $file && chmod -v 644 $file done If you had installed and you have built Clang, install the Clang Analyzer by running the following command as the root user: install -v -dm755 /usr/lib/clang-analyzer && for prog in scan-build scan-view do cp -rfv tools/clang/tools/$prog /usr/lib/clang-analyzer/ ln -sfv ../lib/clang-analyzer/$prog/$prog /usr/bin/ done && ln -sfv /usr/bin/clang /usr/lib/clang-analyzer/scan-build/ && mv -v /usr/lib/clang-analyzer/scan-build/scan-build.1 /usr/share/man/man1/ If you have built manual pages, install them by running the following command as the root user: install -v -m644 docs/_build/man/* /usr/share/man/man1/ Command Explanations sed -e ... Makefile.config.in: This sed fixes location of the installed documentation. sed -i ... tools/opt/Makefile: Workaround to make sure it links correctly. --enable-libffi: This switch enables LLVM to use libffi. Remove if you did not install libffi. --enable-optimized: This switch enables compiler optimizations in order to speed up the code and reduce its size. --enable-shared: This switch enables building of the LLVM shared library which contains all of static libraries linked into single library. --disable-assertions: Disable some compile checks, not necessary on a production system. Contents Installed Programs Installed Libraries Installed Directories bugpoint, c-index-test, clang, clang++ (symlink), count, FileCheck, clang-check, clang-format, clang-tblgen, llc, lli, lli-child-target, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis, llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm, llvm-objdump, llvm-profdata, llvm-ranlib (symlink), llvm-readobj, llvm-rtdyld, llvm-size, llvm-stress, llvm-symbolizer, llvm-tblgen, macho-dump, not, opt, scan-build (symlink), and scan-view (symlink) BugpointPasses.so, libclang.so, libLLVM-&llvm-version;.so, libLTO.so, LLVMHello.so and numerous static libraries in /usr/lib /usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,clang-analyzer}, /usr/share/doc/llvm-&llvm-version;, and /usr/share/llvm Short Descriptions bugpoint is the automatic test case reduction tool. bugpoint clang is the Clang C, C++, and Objective-C compiler. clang llc is the LLVM static compiler. llc lli is used to directly execute programs from LLVM bitcode. lli llvm-ar is the LLVM archiver. llvm-ar llvm-as is the LLVM assembler. llvm-as llvm-bcanalyzer is the LLVM bitcode analyzer. llvm-bcanalyzer llvm-config Prints LLVM compilation options. llvm-config llvm-cov is used to emit coverage information. llvm-cov llvm-diff is the LLVM structural 'diff'. llvm-diff llvm-dis is the LLVM disassembler. llvm-dis llvm-extract is used to extract a function from an LLVM module. llvm-extract llvm-link is the LLVM linker. llvm-link llvm-nm is used to list LLVM bitcode and object file's symbol table. llvm-nm llvm-ranlib is used to generate index for LLVM archive. llvm-ranlib llvm-stress is used to generate random .ll files. llvm-stress llvm-tblgen is the LLVM Target Description To C++ Code Generator. llvm-tblgen opt is the LLVM optimizer. opt scan-build is a Perl script that invokes the Clang static analyzer. scan-build libLLVM-&llvm-version;.so contains the LLVM API functions. libLLVM-&llvm-version;.so