Simplify LiveDebugVariables by storing MachineOperand copies locations instead
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sun, 9 Jan 2011 05:33:21 +0000 (05:33 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sun, 9 Jan 2011 05:33:21 +0000 (05:33 +0000)
commit0804ead404d694b35e9c55ccbf43f99cd394e487
tree0ebd2b11c83f6e346d932a90e241ec2db3d939a2
parent00f93fc0467e89d5e63b8ebd9a18909a3b031ccc
Simplify LiveDebugVariables by storing MachineOperand copies locations instead
of using a Location class with the same information.

When making a copy of a MachineOperand that was already stored in a
MachineInstr, it is necessary to clear the parent pointer on the copy. Otherwise
the register use-def lists become inconsistent.

Add MachineOperand::clearParent() to do that. An alternative would be a custom
MachineOperand copy constructor that cleared ParentMI. I didn't want to do that
because of the performance impact.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123109 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineOperand.h
lib/CodeGen/LiveDebugVariables.cpp