Linker: correctly link in dbg.declare
authorManman Ren <mren@apple.com>
Thu, 31 Jan 2013 21:19:18 +0000 (21:19 +0000)
committerManman Ren <mren@apple.com>
Thu, 31 Jan 2013 21:19:18 +0000 (21:19 +0000)
commit16d1a6bf082e7dbda4de2e5a54b9e8caae990c61
tree8c8e89149ea858445684550575ea53e4a00189a3
parent14292a6be51ab57ff425ff263d4134fe46d082c4
Linker: correctly link in dbg.declare

This is a re-worked version of r174048.
Given source IR:
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15
we used to generate
call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29
!27 = metadata !{null}

With this patch, we will correctly generate
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28

Looking up %argc.addr in ValueMap will return null, since %argc.addr is already
correctly set up, we can use identity mapping.

rdar://problem/13089880

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174093 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/ValueMapper.cpp
test/Linker/DbgDeclare.ll [new file with mode: 0644]
test/Linker/DbgDeclare2.ll [new file with mode: 0644]