summaryrefslogtreecommitdiff
path: root/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
commit796f9faffde9544e530d71f3ac14e63c1de9e406 (patch)
treee7a4c35529486aaf0f503ece4b2474cefb1c38f9 /docs/ProgrammersManual.html
parentee182422ff0b638b17c5ee802c19b8680107c2bb (diff)
downloadllvm-796f9faffde9544e530d71f3ac14e63c1de9e406.tar.gz
llvm-796f9faffde9544e530d71f3ac14e63c1de9e406.tar.bz2
llvm-796f9faffde9544e530d71f3ac14e63c1de9e406.tar.xz
update this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34063 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/ProgrammersManual.html')
-rw-r--r--docs/ProgrammersManual.html19
1 files changed, 9 insertions, 10 deletions
diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html
index b5b7a9ccf6..9b29c9bb62 100644
--- a/docs/ProgrammersManual.html
+++ b/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>