Replace std::map<K, V*> with std::map<K, V> to handle ownership and deletion of the values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222957 91177308-0d34-0410-b5e6-96231b3b80d8
Remove indirection of vector<T*> in favor of deque<T>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222958 91177308-0d34-0410-b5e6-96231b3b80d8
Remove some unnecessary vector::reserve/assign calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222959 91177308-0d34-0410-b5e6-96231b3b80d8