AsmPrinter: Remove the vtable-entry from DIEValue
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sat, 23 May 2015 01:45:07 +0000 (01:45 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Sat, 23 May 2015 01:45:07 +0000 (01:45 +0000)
commit68b3f307782986c3ea0031e9fb9a97bb9b5a1a8c
tree32325de212362e6219a9756654eed66e159b76a8
parent7800f1f5aa04876e327f6522118bc642c1c43532
AsmPrinter: Remove the vtable-entry from DIEValue

Remove all virtual functions from `DIEValue`, dropping the vtable
pointer from its layout.  Instead, create "impl" functions on the
subclasses, and use the `DIEValue::Type` to implement the dynamic
dispatch.

This is necessary -- obviously not sufficient -- for passing `DIEValue`s
around by value.  However, this change stands on its own: we make tons
of these.  I measured a drop in memory usage from 888 MB down to 860 MB,
or around 3.2%.

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

llvm-svn: 238084
llvm/include/llvm/CodeGen/DIE.h
llvm/lib/CodeGen/AsmPrinter/DIE.cpp