Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to use
authorJeffrey Yasskin <jyasskin@google.com>
Thu, 22 Oct 2009 20:10:20 +0000 (20:10 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Thu, 22 Oct 2009 20:10:20 +0000 (20:10 +0000)
commite0a234029b1b65f21169536f4c45e83743ed3cfa
tree47c339af1f2fbc95bfa69c64488190662f759a32
parent9d89df169027035bf692b3d397bb93cff7bdc860
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84890 91177308-0d34-0410-b5e6-96231b3b80d8
docs/ProgrammersManual.html
include/llvm/ADT/ValueMap.h [new file with mode: 0644]
include/llvm/Support/type_traits.h
unittests/ADT/ValueMapTest.cpp [new file with mode: 0644]