summaryrefslogtreecommitdiffstats
path: root/llvm/docs/ProgrammersManual.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-08 19:14:21 +0000
committerChris Lattner <sabre@nondot.org>2007-02-08 19:14:21 +0000
commitd81d7be3cdf36163835f39d47a71a7dc65f4bf42 (patch)
tree219d5024f8b0abbd1fb8e34b3cceabf6b40c9754 /llvm/docs/ProgrammersManual.html
parent259ba20bd85186b3f51d35f58a7c3fde49f96750 (diff)
downloadbcm5719-llvm-d81d7be3cdf36163835f39d47a71a7dc65f4bf42.tar.gz
bcm5719-llvm-d81d7be3cdf36163835f39d47a71a7dc65f4bf42.zip
update this.
llvm-svn: 34063
Diffstat (limited to 'llvm/docs/ProgrammersManual.html')
-rw-r--r--llvm/docs/ProgrammersManual.html19
1 files changed, 9 insertions, 10 deletions
diff --git a/llvm/docs/ProgrammersManual.html b/llvm/docs/ProgrammersManual.html
index b5b7a9ccf6a..9b29c9bb622 100644
--- a/llvm/docs/ProgrammersManual.html
+++ b/llvm/docs/ProgrammersManual.html
@@ -71,7 +71,7 @@ option</a></li>
<li><a href="#ds_map">Map-Like Containers (std::map, DenseMap, etc)</a>
<ul>
<li><a href="#dss_sortedvectormap">A sorted 'vector'</a></li>
- <li><a href="#dss_cstringmap">"llvm/ADT/CStringMap.h"</a></li>
+ <li><a href="#dss_stringmap">"llvm/ADT/StringMap.h"</a></li>
<li><a href="#dss_indexedmap">"llvm/ADT/IndexedMap.h"</a></li>
<li><a href="#dss_densemap">"llvm/ADT/DenseMap.h"</a></li>
<li><a href="#dss_map">&lt;map&gt;</a></li>
@@ -1152,7 +1152,7 @@ vectors for sets.
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">
- <a name="dss_cstringmap">"llvm/ADT/CStringMap.h"</a>
+ <a name="dss_stringmap">"llvm/ADT/StringMap.h"</a>
</div>
<div class="doc_text">
@@ -1160,12 +1160,11 @@ vectors for sets.
<p>
Strings are commonly used as keys in maps, and they are difficult to support
efficiently: they are variable length, inefficient to hash and compare when
-long, expensive to copy, etc. CStringMap is a specialized container designed to
-cope with these issues. It supports mapping an arbitrary range of bytes that
-does not have an embedded nul character in it ("C strings") to an arbitrary
-other object.</p>
+long, expensive to copy, etc. StringMap is a specialized container designed to
+cope with these issues. It supports mapping an arbitrary range of bytes to an
+arbitrary other object.</p>
-<p>The CStringMap implementation uses a quadratically-probed hash table, where
+<p>The StringMap implementation uses a quadratically-probed hash table, where
the buckets store a pointer to the heap allocated entries (and some other
stuff). The entries in the map must be heap allocated because the strings are
variable length. The string data (key) and the element object (value) are
@@ -1173,15 +1172,15 @@ stored in the same allocation with the string data immediately after the element
object. This container guarantees the "<tt>(char*)(&amp;Value+1)</tt>" points
to the key string for a value.</p>
-<p>The CStringMap is very fast for several reasons: quadratic probing is very
+<p>The StringMap is very fast for several reasons: quadratic probing is very
cache efficient for lookups, the hash value of strings in buckets is not
-recomputed when lookup up an element, CStringMap rarely has to touch the
+recomputed when lookup up an element, StringMap rarely has to touch the
memory for unrelated objects when looking up a value (even when hash collisions
happen), hash table growth does not recompute the hash values for strings
already in the table, and each pair in the map is store in a single allocation
(the string data is stored in the same allocation as the Value of a pair).</p>
-<p>CStringMap also provides query methods that take byte ranges, so it only ever
+<p>StringMap also provides query methods that take byte ranges, so it only ever
copies a string if a value is inserted into the table.</p>
</div>
OpenPOWER on IntegriCloud