]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/commit
Implement the first half of LiveDebugVariables.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 2 Dec 2010 00:37:37 +0000 (00:37 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 2 Dec 2010 00:37:37 +0000 (00:37 +0000)
commit0613516b16466a92c68d60734801221506c85e86
tree5b29564569f13d977b7c2aa4c58914af83259737
parentdff84b03258514463ede477af38f1246b95b0cd0
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.

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