-<p>Each input file is encoded as a separate compile unit in LLVM debugging
- information output. However, many target specific tool chains prefer to
- encode only one compile unit in an object file. In this situation, the LLVM
- code generator will include debugging information entities in the compile
- unit that is marked as main compile unit. The code generator accepts maximum
- one main compile unit per module. If a module does not contain any main
- compile unit then the code generator will emit multiple compile units in the
- output object file.</p>
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsubsection">
+ <a name="format_files">File descriptors</a>
+</div>
+
+<div class="doc_text">
+
+<div class="doc_code">
+<pre>
+!0 = metadata !{
+ i32, ;; Tag = 41 + <a href="#LLVMDebugVersion">LLVMDebugVersion</a>
+ ;; (DW_TAG_file_type)
+ metadata, ;; Source file name
+ metadata, ;; Source file directory (includes trailing slash)
+ metadata ;; Reference to compile unit where defined
+}
+</pre>
+</div>
+
+<p>These descriptors contain information for a file. Global variables and top
+ level functions would be defined using this context.k File descriptors also
+ 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>