mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-13 08:25:27 +00:00
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
This commit is contained in:
@@ -31,6 +31,7 @@ public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
|
||||
LiveDebugVariables();
|
||||
~LiveDebugVariables();
|
||||
|
||||
/// renameRegister - Move any user variables in OldReg to NewReg:SubIdx.
|
||||
/// @param OldReg Old virtual register that is going away.
|
||||
@@ -45,9 +46,8 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
/// runOnMachineFunction - Analyze and remove DBG_VALUE instructions.
|
||||
virtual bool runOnMachineFunction(MachineFunction &);
|
||||
|
||||
virtual void releaseMemory();
|
||||
virtual void getAnalysisUsage(AnalysisUsage &) const;
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user