OSDN Git Service

Set the parent pointer of cloned DBG_VALUE instructions correctly.
authorAdrian Prantl <aprantl@apple.com>
Fri, 5 Sep 2014 17:10:10 +0000 (17:10 +0000)
committerAdrian Prantl <aprantl@apple.com>
Fri, 5 Sep 2014 17:10:10 +0000 (17:10 +0000)
commit1774832b294d96d59d6274200f11b5b5d9f20c67
treec1e0fdc8c659747803a1ebc0f19e3481c4dcdb27
parentbabb45124ca9bc89241e2dc69d2dd52626241cc3
Set the parent pointer of cloned DBG_VALUE instructions correctly.
Fixes PR20523.

When spilling variables onto the stack, spillVirtReg() is setting the
parent pointer of the cloned DBG_VALUE intrinsic for the stack location
to the parent pointer of the original intrinsic. MachineInstr parent
pointers should however always point to the parent basic block.

MBB is shadowing the MBB member variable. The instruction still ends up
being inserted into the right basic block, because it's inserted after MI
which serves as the iterator.

I failed at constructing a reliable testcase for this, see
http://llvm.org/bugs/show_bug.cgi?id=20523 for a large testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217260 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocFast.cpp