aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-11-03 12:28:03 +0100
committerRichard Biener <rguenther@suse.de>2020-11-03 14:51:39 +0100
commit104ca9cfa60aa1d5dd6666d3574bed012d394e8c (patch)
tree9b94ca5cad467febc6452e69be5ad5281388d842 /gcc
parented62f3668b5a4b26fbd4b0edbf5948a67f3480f0 (diff)
downloadgcc-104ca9cfa60aa1d5dd6666d3574bed012d394e8c.zip
gcc-104ca9cfa60aa1d5dd6666d3574bed012d394e8c.tar.gz
gcc-104ca9cfa60aa1d5dd6666d3574bed012d394e8c.tar.bz2
Save some memory at debug stream-in time
This allows us to release references to BLOCKs by not keeping them rooted in the external_die_map but instead remove it from there as soon as we created the corresponding stub DIE. For decls it doesn't help since we still keep the decl_die_table. 2020-11-03 Richard Biener <rguenther@suse.de> * dwarf2out.c (maybe_create_die_with_external_ref): Remove hashtable entry.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/dwarf2out.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 534877b..64ac94a 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -5974,6 +5974,7 @@ maybe_create_die_with_external_ref (tree decl)
const char *sym = desc->sym;
unsigned HOST_WIDE_INT off = desc->off;
+ external_die_map->remove (decl);
in_lto_p = false;
dw_die_ref die = (TREE_CODE (decl) == BLOCK