* 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
|814||814||following is a brief introduction to the most important tools.|
|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|
what an analysis does.
|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|
on using bugpoint.
|832||the given LLVM bytecode files, optionally with an index for faster|
LLVM assembly to LLVM bytecode.
bytecode to human readable LLVM assembly. Additionally
|839||bytecode to human readable LLVM assembly. Additionally it can convert⏎|
LLVM bytecode to C, which is enabled with the -c option.
links multiple LLVM modules into a single program.
|825||846||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|
|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|
faster than the interpreter.
which translates LLVM bytecode to a SPARC or x86 assembly file.
|837||858||that has been retargeted to emit LLVM code as the machine code output. It|
|838||859||works just like any other GCC compiler, taking the typical -c, -S, -E,|
|839||860||-o options that are typically used. The source code for the|
|845||866||llvmgcc frontend as the "assembler" part of the compiler. This|
|846||867||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"|
|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|
modified to interface to a "weird" assembler.
|858||878||bytecode files into one bytecode file and does some optimization. It is|
|867||887||line), and then outputs the resultant bytecode. The 'opt --help'|
|868||888||command is a good way to get a list of the program transformations|
available in LLVM.
|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|
what an analysis does.