[DebugInfo] Let IRBuilder::SetInsertPoint(BB::iterator) update current debug location.
authorAlexey Samsonov <vonosmas@gmail.com>
Tue, 30 Jun 2015 19:07:20 +0000 (19:07 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Tue, 30 Jun 2015 19:07:20 +0000 (19:07 +0000)
commite5039b7b2a5f8c89af5597993f3dad55e3b249a3
tree352eb07a18665eeeeb16abc9e7fd2c58251df723
parent1bdc53af1d16bea761f139a121541825ad3b4329
[DebugInfo] Let IRBuilder::SetInsertPoint(BB::iterator) update current debug location.

IRBuilder::SetInsertPoint(BB, BB::iterator) is an older version of
IRBuilder::SetInsertPoint(Instruction). However, the latter updates
the current debug location of emitted instruction, while the former
doesn't, which is confusing.

Unify the behavior of these methods: now they both set current debug
location to the debug location of instruction at insertion point.

The callers of IRBuilder::SetInsertPoint(BB, BB::iterator) doesn't
seem to depend on the old behavior (keeping the original debug info
location). On the contrary, sometimes they (e.g. SCEV) *should* be
updating debug info location, but don't. I'll look at gdb bots after
the commit to check that we don't regress on debug info somewhere.

This change may make line table more fine-grained, thus increasing
debug info size. I haven't observed significant increase, though:
it varies from negligible to 0.3% on several binaries and self-hosted
Clang.

This is yet another change targeted at resolving PR23837.

llvm-svn: 241101
llvm/include/llvm/IR/IRBuilder.h
llvm/unittests/IR/IRBuilderTest.cpp