OSDN Git Service

AsmPrinter: Store abbreviation data directly in DIE and DIEValue
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 27 May 2015 22:31:41 +0000 (22:31 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 27 May 2015 22:31:41 +0000 (22:31 +0000)
commit611a2f232296f0b3178d800af2e9403be97bc2d3
tree3c8e4fda4bf0b6ecde838c43ea045cfd3f357c75
parent09fe4bf794502ed795d2ef125f0f1f1c75e72571
AsmPrinter: Store abbreviation data directly in DIE and DIEValue

Stop storing a `DIEAbbrev` in `DIE`, since the data fits neatly inside
the `DIEValue` list.  Besides being a cleaner data structure (avoiding
the parallel arrays), this gives us more freedom to rearrange the
`DIEValue` list.

This fixes the temporary memory regression from 845 MB up to 879 MB, and
drops it further to 829 MB for a net memory decrease of around 1.9%
(incremental decrease around 5.7%).

(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238364 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/DIE.h
lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
lib/CodeGen/AsmPrinter/DIE.cpp
lib/CodeGen/AsmPrinter/DIEHash.cpp
lib/CodeGen/AsmPrinter/DIEHash.h
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AsmPrinter/DwarfFile.cpp
lib/CodeGen/AsmPrinter/DwarfFile.h
tools/dsymutil/DwarfLinker.cpp