History log of /llvm-project/llvm/lib/CodeGen/LiveDebugVariables.cpp (Results 226 – 239 of 239)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 8c98495f 11-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Enable LiveDebugVariables by default.

llvm-svn: 123282


# 803f48bc 11-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Don't insert DBG_VALUE instructions after the first terminator.

For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is
happening, and it also makes sense to have all control flo

Don't insert DBG_VALUE instructions after the first terminator.

For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is
happening, and it also makes sense to have all control flow run through the
DBG_VALUE.

llvm-svn: 123277

show more ...


# 2fb5b315 10-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.

These functions not longer assert when passed 0, but simply return false instead.

No functional change intended.

llvm-svn: 1

Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.

These functions not longer assert when passed 0, but simply return false instead.

No functional change intended.

llvm-svn: 123155

show more ...


# 9adf5e09 09-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

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

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.

llvm-svn: 123109

show more ...


# 1331a15b 09-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk>

Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance.

Print virtual registers numbered from 0 instead of the arbitrary
FirstVirtualRegister. The first vi

Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance.

Print virtual registers numbered from 0 instead of the arbitrary
FirstVirtualRegister. The first virtual register is printed as %vreg0.
TRI::NoRegister is printed as %noreg.

llvm-svn: 123107

show more ...


# acbee0b0 07-Jan-2011 Devang Patel <dpatel@apple.com>

Speculatively revert r123032.

llvm-svn: 123039


# 6381e158 07-Jan-2011 Devang Patel <dpatel@apple.com>

Appropriately truncate debug info range in dwarf output.
Enable live debug variables pass.

llvm-svn: 123032


# 922e1fac 03-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Rename virtRegMap to avoid confusion with the VirtRegMap that it isn't.

llvm-svn: 120846


# 4408603a 03-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Coalesce debug locations when possible, causing less DBG_VALUE instructions to
be emitted.

llvm-svn: 120845


# afc2bc2c 03-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Emit DBG_VALUE instructions from LiveDebugVariables.

llvm-svn: 120842


# 25cde34a 03-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Also update virtRegMap when renaming virtual registers.

llvm-svn: 120841


# 9ec20111 02-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Update LiveDebugVariables during coalescing.

llvm-svn: 120720


# 4be0bd79 02-Dec-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Implement the first half of LiveDebugVariables.

Scan the MachineFunction for DBG_VALUE instructions, and replace them with a
data structure similar to LiveIntervals. The live range of a DBG_VALUE is

Implement the first half of LiveDebugVariables.

Scan the MachineFunction for DBG_VALUE instructions, and replace them with a
data structure similar to LiveIntervals. The live range of a DBG_VALUE is
determined by propagating it down the dominator tree until a new DBG_VALUE is
found. When a DBG_VALUE lives in a register, its live range is confined to the
live range of the register's value.

LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially
extended when registers are joined.

The missing half will recreate DBG_VALUE instructions from the intervals when
register allocation is complete.

The pass is disabled by default. It can be enabled with the temporary command
line option -live-debug-variables.

llvm-svn: 120636

show more ...


# d4900a64 30-Nov-2010 Jakob Stoklund Olesen <stoklund@2pi.dk>

Stub out a new LiveDebugVariables pass.

This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG

Stub out a new LiveDebugVariables pass.

This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG_VALUE instructions.

When the register allocator is moving values between registers and the stack, it
is very hard to keep track of DBG_VALUE instructions. We usually get it wrong.
This analysis maintains a data structure that makes it easy to update DBG_VALUE
instructions.

llvm-svn: 120385

show more ...


12345678910