- possible even when the LLVM optimizer continues to evolve.</p>
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="llvmsymbol">LLVMSymbol</a>
-</div>
-
-<div class="doc_text">
- <p>The <tt>LLVMSymbol</tt> class is used to describe the externally visible
- functions and global variables, defined in LLVM bitcode files, to the linker.
- This includes symbol visibility information. This information is used by
- the linker to do symbol resolution. For example: function <tt>foo2()</tt> is
- defined inside an LLVM bitcode module and it is an externally visible symbol.
- This helps the linker connect the use of <tt>foo2()</tt> in native object
- files with a future definition of the symbol <tt>foo2()</tt>. The linker
- will see the actual definition of <tt>foo2()</tt> when it receives the
- optimized native object file in
- <a href="#phase4">Symbol Resolution after optimization</a> phase. If the
- linker does not find any uses of <tt>foo2()</tt>, it updates LLVMSymbol
- visibility information to notify LLVM intermodular optimizer that it is dead.
- The LLVM intermodular optimizer takes advantage of such information to
- generate better code.</p>
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="readllvmobjectfile">readLLVMObjectFile()</a>
-</div>
-
-<div class="doc_text">
- <p>The <tt>readLLVMObjectFile()</tt> function is used by the linker to read
- LLVM bitcode files and collect LLVMSymbol information. This routine also
- supplies a list of externally defined symbols that are used by LLVM bitcode
- files. The linker uses this symbol information to do symbol resolution.
- Internally, <a href="#lto">LLVMlto</a> maintains LLVM bitcode modules in
- memory. This function also provides a list of external references used by
- bitcode files.</p>
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="optimizemodules">optimizeModules()</a>
-</div>
-
-<div class="doc_text">
- <p>The linker invokes <tt>optimizeModules</tt> to optimize already read
- LLVM bitcode files by applying LLVM intermodular optimization techniques.
- This function runs the LLVM intermodular optimizer and generates native
- object code as <tt>.o</tt> files at the name and location provided by the
- linker.</p>