diff options
author | Jeffrey Yasskin <jyasskin@google.com> | 2009-10-22 20:10:20 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@google.com> | 2009-10-22 20:10:20 +0000 |
commit | 6b80e6e2b7793005ded19a9eb81b95fdb0f7bb79 (patch) | |
tree | 37a2a685d390892d7f0cba045d848a7154bf3a93 /llvm/docs/ProgrammersManual.html | |
parent | c78b8f3c3a01cf54a74c04dc0193a411412f9656 (diff) | |
download | bcm5719-llvm-6b80e6e2b7793005ded19a9eb81b95fdb0f7bb79.tar.gz bcm5719-llvm-6b80e6e2b7793005ded19a9eb81b95fdb0f7bb79.zip |
Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to use
even when keys get RAUWed and deleted during its lifetime. By default the keys
act like WeakVHs, but users can pass a third template parameter to configure
how updates work and whether to do anything beyond updating the map on each
action.
It's also possible to automatically acquire a lock around ValueMap updates
triggered by RAUWs and deletes, to support the ExecutionEngine.
llvm-svn: 84890
Diffstat (limited to 'llvm/docs/ProgrammersManual.html')
-rw-r--r-- | llvm/docs/ProgrammersManual.html | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/docs/ProgrammersManual.html b/llvm/docs/ProgrammersManual.html index 68367de0bff..e4e3dc29c30 100644 --- a/llvm/docs/ProgrammersManual.html +++ b/llvm/docs/ProgrammersManual.html @@ -83,6 +83,7 @@ option</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_valuemap">"llvm/ADT/ValueMap.h"</a></li> <li><a href="#dss_map"><map></a></li> <li><a href="#dss_othermap">Other Map-Like Container Options</a></li> </ul></li> @@ -1492,6 +1493,23 @@ inserted into the map) that it needs internally.</p> <!-- _______________________________________________________________________ --> <div class="doc_subsubsection"> + <a name="dss_valuemap">"llvm/ADT/ValueMap.h"</a> +</div> + +<div class="doc_text"> + +<p> +ValueMap is a wrapper around a <a href="#dss_densemap">DenseMap</a> mapping +Value*s (or subclasses) to another type. When a Value is deleted or RAUW'ed, +ValueMap will update itself so the new version of the key is mapped to the same +value, just as if the key were a WeakVH. You can configure exactly how this +happens, and what else happens on these two events, by passing +a <code>Config</code> parameter to the ValueMap template.</p> + +</div> + +<!-- _______________________________________________________________________ --> +<div class="doc_subsubsection"> <a name="dss_map"><map></a> </div> |