[utils] InlineFunction: fix for debug info affecting optimizations
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Mon, 28 Oct 2019 16:34:52 +0000 (17:34 +0100)
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Mon, 28 Oct 2019 17:19:07 +0000 (18:19 +0100)
commit80cb2cecc65753aa1de09a09f3750408913f6450
treeaf83d8826cf4ed1c805d9254754c8ee632cba63f
parentd11b93ec6ac1cf48dce0a8b7beb3e07f0ee9b0fc
[utils] InlineFunction: fix for debug info affecting optimizations

Summary:
Debug info affects output from "opt -inline", InlineFunction could
not handle the llvm.dbg.value when it exist between alloca
instructions.

Problem was that the first alloca in a sequence of allocas was
handled differently from the subsequence alloca instructions. Now
all static alloca instructions are treated the same (being removed
if the have no uses). So it does not matter if there are dbg
instructions (or any other instructions) in between.

Fix the issue: https://bugs.llvm.org/show_bug.cgi?id=43291k

Patch by: yechunliang (Chris Ye)

Reviewers: bjope, jmorse, vsk, probinson, jdoerfert, mtrofin, aprantl, fhahn

Reviewed By: bjope

Subscribers: uabelho, ormris, aprantl, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68633
llvm/lib/Transforms/Utils/InlineFunction.cpp
llvm/test/Transforms/Inline/inline-skip-use-empty-alloca.ll [new file with mode: 0644]