diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-14 21:58:17 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-14 21:58:17 +0000 |
commit | e16d58751510fe3eefa95d0fbb6ec5f2cc4bc63f (patch) | |
tree | 39a3bd4801e4f365f26c727f59d893725a1cf6ac /llvm/test/DebugInfo/cu-range-hole.ll | |
parent | e5f997e551f62cbaa88333259c4d8f0c9272207f (diff) | |
download | bcm5719-llvm-e16d58751510fe3eefa95d0fbb6ec5f2cc4bc63f.tar.gz bcm5719-llvm-e16d58751510fe3eefa95d0fbb6ec5f2cc4bc63f.zip |
IR: Drop metadata references more aggressively during teardown
Sometimes teardown happens before the debug info graph is complete
(e.g., when clang throws an error). In that case, `MDNode`s will still
have RAUW, so deleting constants that the `MDNode`s point at will be
relatively expensive -- it'll cause re-uniquing all up the chain (what
I've been referring to as "teardown madness").
So, drop references *before* deleting constants. We need to drop a few
more references now: the metadata side of the metadata/value bridges
needs to be dropped off the cliff along with the rest of it (previously,
the bridges were cleaned before we did anything with the `MDNode`s).
There's no real functionality change here -- state before and after
`LLVMContextImpl::~LLVMContextImpl()` is unchanged -- so no testcase.
llvm-svn: 226044
Diffstat (limited to 'llvm/test/DebugInfo/cu-range-hole.ll')
0 files changed, 0 insertions, 0 deletions