[JumpThreading] Retain debug info when replacing branch instructions
authorJeremy Morse <jeremy.morse.llvm@gmail.com>
Mon, 11 Mar 2019 11:48:57 +0000 (11:48 +0000)
committerJeremy Morse <jeremy.morse.llvm@gmail.com>
Mon, 11 Mar 2019 11:48:57 +0000 (11:48 +0000)
commitb60aea41315c2a4a432483e57ea5065655bf4e95
treefad5e44d400620e0c9a131ab37e94caa210f8932
parentd8a5c6cf19e7245f0c9d076831ebeabc29d6e174
[JumpThreading] Retain debug info when replacing branch instructions

Fixes bug 37966: https://bugs.llvm.org/show_bug.cgi?id=37966

The Jump Threading pass will replace certain conditional branch
instructions with unconditional branches when it can prove that only one
branch can occur. Prior to this patch, it would not carry the debug
info from the old instruction to the new one.

This patch fixes the bug described by copying the debug info from the
conditional branch instruction to the new unconditional branch
instruction, and adds a regression test for the Jump Threading pass that
covers this case.

Patch by Stephen Tozer!

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

llvm-svn: 355822
llvm/lib/Transforms/Scalar/JumpThreading.cpp
llvm/test/Transforms/JumpThreading/branch-debug-info.ll [new file with mode: 0644]