Use separate named MDNode to hold each function's local variable info.

This speeds up local variable handling in DwarfDebug.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2010-06-16 00:53:55 +00:00
parent 7500e06e38
commit 2f7d5291de
4 changed files with 17 additions and 4 deletions

View File

@ -2259,8 +2259,9 @@ void DwarfDebug::collectVariableInfo(const MachineFunction *MF) {
}
// Collect info for variables that were optimized out.
if (NamedMDNode *NMD =
MF->getFunction()->getParent()->getNamedMetadata("llvm.dbg.lv")) {
const Twine FnLVName = Twine("llvm.dbg.lv.", MF->getFunction()->getName());
if (NamedMDNode *NMD =
MF->getFunction()->getParent()->getNamedMetadataUsingTwine(FnLVName)) {
for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) {
DIVariable DV(cast_or_null<MDNode>(NMD->getOperand(i)));
if (!DV || !Processed.insert(DV))