X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FUsingLibraries.html;h=2973452532960de1b015416aac5d715bbe207267;hb=b60e851c03970291086966b3610be9485e1eec85;hp=7a677d343159d5f9f00e49257f6d1fec2b35a795;hpb=704e81f6e8c1b75966ed6e5d0256f715c837b9fd;p=oota-llvm.git diff --git a/docs/UsingLibraries.html b/docs/UsingLibraries.html index 7a677d34315..29734525329 100644 --- a/docs/UsingLibraries.html +++ b/docs/UsingLibraries.html @@ -5,7 +5,7 @@
-Written by Reid Spencer
-Warning: This document is out of date, please see llvm-config for more information.
+Warning: This document is out of date, for more + information please + see llvm-config or, + if you use CMake, the CMake LLVM + guide.
- -Amongst other things, LLVM is a toolkit for building compilers, linkers, runtime executives, virtual machines, and other program execution related tools. In addition to the LLVM tool set, the functionality of LLVM is @@ -41,8 +45,8 @@
If you're writing a compiler, virtual machine, or any other utility based on LLVM, you'll need to figure out which of the many libraries files you will need to link with to be successful. An understanding of the contents of these @@ -70,8 +74,8 @@ correct for your tool can sometimes be challenging.
The table below categorizes each library
Library | Forms | Description |
---|---|---|
LLVMAsmParser | .a | LLVM assembly parsing |
LLVMBCReader | .a | -LLVM bytecode reading | LLVM bitcode reading |
LLVMBCWriter | .a | -LLVM bytecode writing | LLVM bitcode writing |
LLVMCore | .a | LLVM core intermediate representation |
LLVMDebugger | .a | Source level debugging support |
LLVMLinker | .a | -Bytecode and archive linking interface | Bitcode and archive linking interface |
LLVMSupport | .a | General support utilities |
LLVMSystem | .a | @@ -112,10 +116,8 @@All inter-procedural optimization passes. |
LLVMScalarOpts | .a | All scalar optimization passes. |
LLVMTransforms | .a | -Uncategorized transformation passes. |
LLVMTransformUtils | .a | -Transformation utilities. | Transformation utilities used by many passes. |
Code Generation Libraries | ||
LLVMCodeGen | .o | @@ -130,8 +132,6 @@Code generation for ARM architecture |
LLVMCBackend | .o | 'C' language code generator. |
LLVMIA64 | .o | -Code generation for IA64 architecture |
LLVMPowerPC | .o | Code generation for PowerPC architecture |
LLVMSparc | .o | @@ -143,17 +143,17 @@|
Runtime Libraries | ||
LLVMInterpreter | .o | -Bytecode Interpreter | Bitcode Interpreter |
LLVMJIT | .o | -Bytecode JIT Compiler | Bitcode JIT Compiler |
LLVMExecutionEngine | .o | Virtual machine engine |
The llvm-config tool is a perl script that produces on its output various kinds of information. For example, the source or object directories used to build LLVM can be accessed by passing options to llvm-config. @@ -187,77 +187,79 @@ -
This graph shows the dependency of archive libraries on other archive libraries or objects. Where a library has both archive and object forms, only the archive form is shown.
- -This graph shows the dependency of object files on archive libraries or other objects. Where a library has both object and archive forms, only the dependency to the archive form is shown.
- +The following list shows the dependency relationships between libraries in textual form. The information is the same as shown on the graphs but arranged alphabetically.
This section contains various "rules of thumb" about what files you should link into your programs.
-No matter what you do with LLVM, the last three entries in the value of your LLVMLIBS make variable should always be: LLVMCore LLVMSupport.a LLVMSystem.a. There are no LLVM programs that don't depend on these three.
There is never any point to linking both the re-linked (.o) and the archive (.a) versions of a library. Since the re-linked version includes the entire library, the archive version will not resolve any symbols. You could even end up with link error if you place the archive version before the re-linked version on the linker's command line.