LLVM is a compiler infrastructure designed for compile-time, link-time,
runtime, and idle-time optimization of programs from arbitrary programming
languages. The compiler infrastructure includes mirror sets of programming
tools as well as libraries with equivalent functionality.
bugpoint bugpoint narrows down the source of problems in LLVM tools and passes. It can be used to debug three types of failures: optimizer crashes, miscompilations by... FileCheck FileCheck reads two files (one from standard input, and one specified on the command line) and uses one to verify the other. This behavior is particularly... lit lit is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures. lit is designed to be a... llc The llc command compiles LLVM source inputs into assembly language for a specified architecture. The assembly language output can then be passed through a... lli lli directly executes programs in LLVM bitcode format. It takes a program in LLVM bitcode format and executes it using a just-in-time compiler or an... llvm-ar The llvm-ar command is similar to the common Unix utility, ar. It archives several files together into a single file. The intent for this is to produce archive... llvm-as llvm-as is the LLVM assembler. It reads a file containing human-readable LLVM assembly language, translates it to LLVM bitcode, and writes the result into a... llvm-bcanalyzer The llvm-bcanalyzer command is a small utility for analyzing bitcode files. The tool reads a bitcode file (such as generated with the llvm-as tool) and produces... llvm-build llvm-build is a tool for working with LLVM projects that use the LLVMBuild system for describing their components. At heart, llvm-build is responsible for... llvm-cov The llvm-cov tool shows code coverage information for programs that are instrumented to emit profile data. It can be used to work with gcov-style coverage or... llvm-diff llvm-diff compares the structure of two LLVM modules, primarily focusing on differences in function definitions. Insignificant differences, such as changes in... llvm-dis The llvm-dis command is the LLVM disassembler. It takes an LLVM bitcode file and converts it into human-readable LLVM assembly language. If filename is omitted... llvm-dwarfdump llvm-dwarfdump parses DWARF sections in the object files and prints their contents in human-readable form. llvm-extract The llvm-extract command takes the name of a function and extracts it from the specified LLVM bitcode file. It is primarily used as a debugging tool to reduce... llvm-lib The llvm-lib command is intended to be a lib.exe compatible tool. See https://msdn.microsoft.com/en-us/librar… for the general description. llvm-link llvm-link takes several LLVM bitcode files and links them together into a single LLVM bitcode file. It writes the output file to standard output, unless the -o... llvm-nm The llvm-nm utility lists the names of symbols from the LLVM bitcode files, object files, or ar archives containing them, named on the command line. Each symbol... llvm-profdata The llvm-profdata tool is a small utility for working with profile data files. llvm-readobj The llvm-readobj tool displays low-level format-specific information about one or more object files. The tool and its output is primarily designed for use in... llvm-stress The llvm-stress tool is used to generate random .ll files that can be used to test different components of LLVM. llvm-symbolizer llvm-symbolizer reads object file names and addresses from standard input and prints corresponding source code locations to standard output. If object file is... opt The opt command is the modular LLVM optimizer and analyzer. It takes LLVM source files as input, runs the specified optimizations or analyses on it, and then... tblgen tblgen translates from target description (.td) files into C++ code that can be included in the definition of an LLVM target library. Most users of LLVM will...