aboutsummaryrefslogtreecommitdiffstats
path: root/docs/SourceLevelDebugging.html
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-08-16 22:09:43 +0000
committerDevang Patel <dpatel@apple.com>2011-08-16 22:09:43 +0000
commit94c7ddb6f52a5200983fed0ce74dc602a7737879 (patch)
treec518ecc9201ac8f1f15ed60fabaf069d2cc8b603 /docs/SourceLevelDebugging.html
parent054ddf799b5487b85f6bc1d856c4e2a4978da4f7 (diff)
downloadexternal_llvm-94c7ddb6f52a5200983fed0ce74dc602a7737879.zip
external_llvm-94c7ddb6f52a5200983fed0ce74dc602a7737879.tar.gz
external_llvm-94c7ddb6f52a5200983fed0ce74dc602a7737879.tar.bz2
Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL.
MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/SourceLevelDebugging.html')
-rw-r--r--docs/SourceLevelDebugging.html15
1 files changed, 7 insertions, 8 deletions
diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html
index 9f84b4c..1bf6395 100644
--- a/docs/SourceLevelDebugging.html
+++ b/docs/SourceLevelDebugging.html
@@ -355,7 +355,7 @@ height="369">
;; (DW_TAG_file_type)
metadata, ;; Source file name
metadata, ;; Source file directory (includes trailing slash)
- metadata ;; Reference to compile unit where defined
+ metadata ;; Unused
}
</pre>
</div>
@@ -365,8 +365,7 @@ height="369">
provide context for source line correspondence. </p>
<p>Each input file is encoded as a separate file descriptor in LLVM debugging
- information output. Each file descriptor would be defined using a
- compile unit. </p>
+ information output. </p>
</div>
@@ -485,7 +484,7 @@ global variables are collected by named metadata <tt>!llvm.dbg.gv</tt>.</p>
!4 = metadata !{
i32, ;; Tag = 36 + <a href="#LLVMDebugVersion">LLVMDebugVersion</a>
;; (DW_TAG_base_type)
- metadata, ;; Reference to context (typically a compile unit)
+ metadata, ;; Reference to context
metadata, ;; Name (may be "" for anonymous types)
metadata, ;; Reference to file where defined (may be NULL)
i32, ;; Line number where defined (may be 0)
@@ -500,7 +499,7 @@ global variables are collected by named metadata <tt>!llvm.dbg.gv</tt>.</p>
<p>These descriptors define primitive types used in the code. Example int, bool
and float. The context provides the scope of the type, which is usually the
- top level. Since basic types are not usually user defined the compile unit
+ top level. Since basic types are not usually user defined the context
and line number can be left as NULL and 0. The size, alignment and offset
are expressed in bits and can be 64 bit values. The alignment is used to
round the offset when embedded in a
@@ -585,7 +584,7 @@ DW_TAG_restrict_type = 55
the <a href="#format_derived_type">derived type</a>. </p>
<p><a href="#format_derived_type">Derived type</a> location can be determined
- from the compile unit and line number. The size, alignment and offset are
+ from the context and line number. The size, alignment and offset are
expressed in bits and can be 64 bit values. The alignment is used to round
the offset when embedded in a <a href="#format_composite_type">composite
type</a> (example to keep float doubles on 64 bit boundaries.) The offset is
@@ -675,7 +674,7 @@ DW_TAG_inheritance = 28
the formal arguments to the subroutine.</p>
<p><a href="#format_composite_type">Composite type</a> location can be
- determined from the compile unit and line number. The size, alignment and
+ determined from the context and line number. The size, alignment and
offset are expressed in bits and can be 64 bit values. The alignment is used
to round the offset when embedded in
a <a href="#format_composite_type">composite type</a> (as an example, to keep
@@ -774,7 +773,7 @@ DW_TAG_return_variable = 258
has no source correspondent.</p>
<p>The context is either the subprogram or block where the variable is defined.
- Name the source variable name. Compile unit and line indicate where the
+ Name the source variable name. Context and line indicate where the
variable was defined. Type descriptor defines the declared type of the
variable.</p>