This indexes letters f, g, and h.
[dwarf-doc.git] / dwarf5 / latexdoc / compression.tex
index c3617a1..23576b7 100644 (file)
@@ -5,7 +5,11 @@
 % captioning as DWARF4 here with figures as they moved (floated)
 % making it hard to follow.  Hence this uses fewer figures.
 
-DWARF can use a lot of disk space.
+DWARF 
+\addtoindexx{DWARF compression}
+can 
+\addtoindexx{DWARF duplicate elimination}
+use a lot of disk space.
 
 This is especially true for C++, where the depth and complexity
 of headers can mean that many, many (possibly thousands of)
@@ -156,7 +160,9 @@ widely known as ``COMDATs'' or ``COMDAT sections''. (Other
 object file representations provide COMDAT\dash style mechanisms as
 well.) There are several variations in the COMDAT schemes in
 common use, any of which should be sufficient for the purposes
-of the DWARF duplicate elimination techniques described here.}
+of the 
+\addtoindexx{duplication elimination|see{DWARF duplicate elimination}}
+DWARF duplicate elimination techniques described here.}
 
 \subsection{Naming and Usage Considerations}
 \label{app:namingandusageconsiderations}
@@ -324,7 +330,7 @@ a \addtoindex{C++} namespace declaration or a function, for example, is
 not a good candidate because the entities included are not
 necessarily file level entities.
 
-This also applies to Fortran INCLUDE lines when declarations
+This also applies to \addtoindex{Fortran} INCLUDE lines when declarations
 are included into a procedure or module context.
 
 Consequently a compiler must use \livelink{chap:DWTAGpartialunit}{DW\-\_TAG\-\_partial\-\_unit} (instead
@@ -387,7 +393,9 @@ same object file.
 \subsection{Examples}
 \label{app:examples}
 
-This section provides several examples in order to have a
+This section provides several 
+\addtoindexx{DWARF duplicate elimination!examples}
+examples in order to have a
 concrete basis for discussion.
 
 In these examples, the focus is on the arrangement of DWARF
@@ -408,7 +416,9 @@ the underlying object language is not (and varies from system to system).
 
 \subsubsection{C++ Example}
 
-The addtoindex{C++} source in 
+The addtoindex{C++} source 
+\addtoindexx{DWARF duplicate elimination!C++ example}
+in 
 Section \refersec{app:duplicateeliminationexample1csource}
 is used to illustrate the DWARF
 representation intended to allow duplicate elimination.
@@ -502,7 +512,9 @@ globally visible (in accordance with
 \subsubsection{Fortran Example}
 
 
-For a Fortran example, consider 
+For a \addtoindex{Fortran}
+\addtoindexx{DWARF duplicate elimination!Fortran example}
+example, consider 
 Figure \refersec{app:duplicateeliminationexample2fortransource}.
 
 
@@ -510,6 +522,7 @@ Figure \refersec{app:duplicateeliminationexample2fortransource}.
 \label{app:duplicateeliminationexample2fortransource}
 
 File CommonStuff.fh
+\addtoindexx{Fortran}
 
 \begin{lstlisting}
 IMPLICIT INTEGER(A-Z)
@@ -530,7 +543,9 @@ END
 
 Section \refersec{app:duplicateeliminationexample2dwarfsectiongroup}
 shows the section group 
-corresponding to the included file CommonStuff.fh.
+corresponding to the included file 
+\addtoindexx{Fortran example}
+CommonStuff.fh.
 
 \paragraph{Duplicate elimination example 2: DWARF section group}
 \label{app:duplicateeliminationexample2dwarfsectiongroup}
@@ -662,7 +677,9 @@ visible as global entities.
 
 \subsubsection{C Example}
 
-The \addtoindex{C++} example in this Section might appear to be equally
+The \addtoindex{C} example 
+\addtoindexx{DWARF duplicate elimination!C example}
+in this Section might appear to be equally
 valid as a \addtoindex{C} example. However, it is prudent to include
 a \livelink{chap:DWTAGimportedunit}{DW\-\_TAG\-\_imported\-\_unit}
 in the primary unit 
@@ -1132,7 +1149,7 @@ how the bytes of the flattened type description are formed
 during the type signature computation algorithm of Section
 Section \refersec{datarep:typesignaturecomputation}. 
 
-
+%FIXME: The index entries here with \addtoindexx are ineffective.
 \begin{alltt}
 signature
     : opt-context debug-entry attributes children
@@ -1167,17 +1184,17 @@ tag-code
 at-code
     : <ULEB128>
 form-encoded-value
-    : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value
-    : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value
-    : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string
-    : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \nolink{block}
-\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string}
+    : \livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} value \addtoindexx{constant class}
+    : \livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} value \addtoindexx{flag class}
+    : \livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} string \addtoindexx{string class}
+    : \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} \nolink{block} \addtoindexx{block class}
+\livelink{chap:DWFORMstring}{DW\-\_FORM\-\_string} \addtoindexx{string class}
     : '\\x08'
-\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}
+\livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block}  \addtoindexx{block class}
     : '\\x09'
-\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag}
+\livelink{chap:DWFORMflag}{DW\-\_FORM\-\_flag} \addtoindexx{flag class}
     : '\\x0c'
-\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata}
+\livelink{chap:DWFORMsdata}{DW\-\_FORM\-\_sdata} \addtoindexx{constant class}
     : '\\x0d'
 value
     : <SLEB128>