diff options
Diffstat (limited to 'docs/SourceLevelDebugging.html')
-rw-r--r-- | docs/SourceLevelDebugging.html | 55 |
1 files changed, 1 insertions, 54 deletions
diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 17851b7..e940e93 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -24,7 +24,6 @@ <ol> <li><a href="#debug_info_descriptors">Debug information descriptors</a> <ul> - <li><a href="#format_anchors">Anchor descriptors</a></li> <li><a href="#format_compile_units">Compile unit descriptors</a></li> <li><a href="#format_global_variables">Global variable descriptors</a></li> <li><a href="#format_subprograms">Subprogram descriptors</a></li> @@ -336,58 +335,6 @@ height="369"> <!-- ======================================================================= --> <div class="doc_subsubsection"> - <a name="format_anchors">Anchor descriptors</a> -</div> - -<div class="doc_text"> - -<div class="doc_code"> -<pre> -%<a href="#format_anchors">llvm.dbg.anchor.type</a> = type { - i32, ;; Tag = 0 + <a href="#LLVMDebugVersion">LLVMDebugVersion</a> - i32 ;; Tag of descriptors grouped by the anchor -} -</pre> -</div> - -<p>One important aspect of the LLVM debug representation is that it allows the - LLVM debugger to efficiently index all of the global objects without having - to scan the program. To do this, all of the global objects use "anchor" - descriptors with designated names. All of the global objects of a particular - type (e.g., compile units) contain a pointer to the anchor. This pointer - allows a debugger to use def-use chains to find all global objects of that - type.</p> - -<p>The following names are recognized as anchors by LLVM:</p> - -<div class="doc_code"> -<pre> -%<a href="#format_compile_units">llvm.dbg.compile_units</a> = linkonce constant %<a href="#format_anchors">llvm.dbg.anchor.type</a> { - i32 0, - i32 17 -} ;; DW_TAG_compile_unit -%<a href="#format_global_variables">llvm.dbg.global_variables</a> = linkonce constant %<a href="#format_anchors">llvm.dbg.anchor.type</a> { - i32 0, - i32 52 -} ;; DW_TAG_variable -%<a href="#format_subprograms">llvm.dbg.subprograms</a> = linkonce constant %<a href="#format_anchors">llvm.dbg.anchor.type</a> { - i32 0, - i32 46 -} ;; DW_TAG_subprogram -</pre> -</div> - -<p>Using anchors in this way (where the compile unit descriptor points to the - anchors, as opposed to having a list of compile unit descriptors) allows for - the standard dead global elimination and merging passes to automatically - remove unused debugging information. If the globals were kept track of - through lists, there would always be an object pointing to the descriptors, - thus would never be deleted.</p> - -</div> - -<!-- ======================================================================= --> -<div class="doc_subsubsection"> <a name="format_compile_units">Compile unit descriptors</a> </div> @@ -1919,7 +1866,7 @@ enum Trees { <a href="mailto:sabre@nondot.org">Chris Lattner</a><br> <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2009-05-29 19:08:57 +0200 (Fri, 29 May 2009) $ + Last modified: $Date: 2009-06-26 03:49:18 +0200 (Fri, 26 Jun 2009) $ </address> </body> |