llvm.org GIT mirror llvm / ef0ad41
* Alphabetized order of tools * Added blurb about `bugpoint' * Fixed some grammar issues * Added blurb about `llvm-link' * Took out the part about the `lli debugger' which disappeared git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8900 91177308-0d34-0410-b5e6-96231b3b80d8 Misha Brukman 16 years ago
1 changed file(s) with 37 addition(s) and 23 deletion(s). Raw diff Collapse all Expand all
814814 following is a brief introduction to the most important tools.

815815
816816
817
818
819
analyze
analyze is used to run a specific
820 analysis on an input LLVM bytecode file and print out the results. It is
821 primarily useful for debugging analyses, or familiarizing yourself with
822 what an analysis does.

823
824
bugpoint
bugpoint is used to debug
825 optimization passes or code generation backends by narrowing down the
826 given test case to the minimum number of passes and/or instructions that
827 still cause a problem, whether it is a crash or miscompilation. See
828 href="HowToSubmitABug.html">HowToSubmitABug.html for more information
829 on using bugpoint.

830
831
llvm-ar
The archiver produces an archive containing
832 the given LLVM bytecode files, optionally with an index for faster
833 lookup.

834
817835
llvm-as
The assembler transforms the human readable
818836 LLVM assembly to LLVM bytecode.

819837
820838
llvm-dis
The disassembler transforms the LLVM
821 bytecode to human readable LLVM assembly. Additionally it can convert
839 bytecode to human readable LLVM assembly. Additionally, it can convert
822840 LLVM bytecode to C, which is enabled with the -c option.

823841
842
llvm-link
llvm-link, not surprisingly,
843 links multiple LLVM modules into a single program.

844
824845
lli
lli is the LLVM interpreter, which
825846 can directly execute LLVM bytecode (although very slowly...). In addition
826 to a simple interpreter, lli is also has debugger and tracing
827 modes (entered by specifying -debug or -trace on the
828 command line, respectively). Finally, for architectures that support it
829 (currently only x86 and Sparc), by default, lli will function as
830 a Just-In-Time compiler (if the functionality was compiled in), and will
831 execute the code much faster than the interpreter.

847 to a simple interpreter, lli also has a tracing mode (entered by
848 specifying -trace on the command line). Finally, for
849 architectures that support it (currently only x86 and Sparc), by default,
850 lli will function as a Just-In-Time compiler (if the
851 functionality was compiled in), and will execute the code much
852 faster than the interpreter.

832853
833854
llc
llc is the LLVM backend compiler,
834855 which translates LLVM bytecode to a SPARC or x86 assembly file.

835856
836
llvmgcc
llvmgcc is a GCC based C frontend
857
llvmgcc
llvmgcc is a GCC-based C frontend
837858 that has been retargeted to emit LLVM code as the machine code output. It
838859 works just like any other GCC compiler, taking the typical -c, -S, -E,
839860 -o options that are typically used. The source code for the
844865
gccas
This tool is invoked by the
845866 llvmgcc frontend as the "assembler" part of the compiler. This
846867 tool actually assembles LLVM assembly to LLVM bytecode,
847 performs a variety of optimizations,
848 and outputs LLVM bytecode. Thus when you invoke llvmgcc -c x.c -o
849 x.o, you are causing gccas to be run, which writes the
850 x.o file (which is an LLVM bytecode file that can be
851 disassembled or manipulated just like any other bytecode file). The
852 command line interface to gccas is designed to be as close as
853 possible to the system `as' utility so that the gcc
854 frontend itself did not have to be modified to interface to a "weird"
855 assembler.

868 performs a variety of optimizations, and outputs LLVM bytecode. Thus
869 when you invoke llvmgcc -c x.c -o x.o, you are causing
870 gccas to be run, which writes the x.o file (which is
871 an LLVM bytecode file that can be disassembled or manipulated just like
872 any other bytecode file). The command line interface to gccas
873 is designed to be as close as possible to the system
874 `as' utility so that the gcc frontend itself did not have to be
875 modified to interface to a "weird" assembler.

856876
857877
gccld
gccld links together several LLVM
858878 bytecode files into one bytecode file and does some optimization. It is
867887 line), and then outputs the resultant bytecode. The 'opt --help'
868888 command is a good way to get a list of the program transformations
869889 available in LLVM.

870
871
872
analyze
analyze is used to run a specific
873 analysis on an input LLVM bytecode file and print out the results. It is
874 primarily useful for debugging analyses, or familiarizing yourself with
875 what an analysis does.

876890
877891
878892