OSDN Git Service

Fix for http://llvm.org/bugs/show_bug.cgi?id=18590
authorEkaterina Romanova <katya_romanova@playstation.sony.com>
Thu, 13 Mar 2014 18:47:12 +0000 (18:47 +0000)
committerEkaterina Romanova <katya_romanova@playstation.sony.com>
Thu, 13 Mar 2014 18:47:12 +0000 (18:47 +0000)
commited2ca70ccff2e2654a41d6d9fc74683d6ec0a2ff
tree829e06a09c999477f07347a446c8984787fa7865
parent4ad41871eba4ec8bfe5a967f596b85814fa5fe4b
Fix for http://llvm.org/bugs/show_bug.cgi?id=18590

This patch fixes the bug in peephole optimization that folds a load which defines one vreg into the one and only use of that vreg. With debug info, a DBG_VALUE that referenced the vreg considered to be a use, preventing the optimization. The fix is to ignore DBG_VALUE's during the optimization, and undef a DBG_VALUE that references a vreg that gets removed.
Patch by Trevor Smigiel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203829 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineRegisterInfo.h
lib/CodeGen/DeadMachineInstructionElim.cpp
lib/CodeGen/MachineRegisterInfo.cpp
lib/CodeGen/PeepholeOptimizer.cpp
test/CodeGen/X86/dbg-changes-codegen.ll [new file with mode: 0644]