[Coroutines] Part15b: Fix dbg information handling in coro-split.
authorGor Nishanov <GorNishanov@gmail.com>
Fri, 30 Sep 2016 19:05:06 +0000 (19:05 +0000)
committerGor Nishanov <GorNishanov@gmail.com>
Fri, 30 Sep 2016 19:05:06 +0000 (19:05 +0000)
commitc16219486a30076752d6803c68ab6f883b5fd4a4
tree01aa200a43996c6c770c7fead05e9dd26cdec1df
parentf9c622adfc4d18319320d7fa27c62a202033dfb6
[Coroutines] Part15b: Fix dbg information handling in coro-split.

Summary:
Without the fix, if there was a function inlined into the coroutine with debug information, CloneFunctionInto(NewF, &F, VMap, /*ModuleLevelChanges=*/true, Returns); would duplicate all of the debug information including the DICompileUnit.

We know use VMap to indicate that debug metadata for a File, Unit and FunctionType should not be duplicated when we creating clones that will become f.resume, f.destroy and f.cleanup.

Reviewers: majnemer

Subscribers: mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D24417

llvm-svn: 282899
llvm/lib/Transforms/Coroutines/CoroFrame.cpp
llvm/lib/Transforms/Coroutines/CoroSplit.cpp
llvm/test/Transforms/Coroutines/coro-split-dbg.ll [new file with mode: 0644]