Fix a major source of compile-time slowness at -O0 -g by optimizing
authorChris Lattner <sabre@nondot.org>
Tue, 30 Mar 2010 23:03:27 +0000 (23:03 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 30 Mar 2010 23:03:27 +0000 (23:03 +0000)
commitec39f095f5abaf1ec90d7c6c46454032cda36e1c
tree2d3a0f5e859ac6ba680bb055b87a6e7191190097
parentbfcd61b907e1ec7e6b21fafa7c362e3002ddf3c1
Fix a major source of compile-time slowness at -O0 -g by optimizing
the storage of !dbg metadata kinds in the instruction themselves.
The on-the-side hash table works great for metadata that not-all
instructions get, or for metadata that only exists when optimizing.
But when compile-time is everything, it isn't great.

I'm not super thrilled with the fact that this plops a TrackingVH in
Instruction, because it grows it by 3 words.  I'm investigating
alternatives, but this should be a step in the right direction in any
case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99957 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Instruction.h
include/llvm/LLVMContext.h
include/llvm/Support/ValueHandle.h
lib/VMCore/Instruction.cpp
lib/VMCore/LLVMContext.cpp
lib/VMCore/Metadata.cpp