Skip to content
  1. May 06, 2011
    • Jakob Stoklund Olesen's avatar
      Update LiveDebugVariables after live range splitting. · f8da0288
      Jakob Stoklund Olesen authored
      After a virtual register is split, update any debug user variables that resided
      in the old register. This ensures that the LiveDebugVariables are still correct
      after register allocation.
      
      This may create DBG_VALUE instructions that place a user variable in a register
      in parts of the function and in a stack slot in other parts. DwarfDebug
      currently doesn't support that.
      
      llvm-svn: 130998
      f8da0288
  2. Dec 03, 2010
  3. Dec 02, 2010
    • Jakob Stoklund Olesen's avatar
      Update LiveDebugVariables during coalescing. · 9ec20111
      Jakob Stoklund Olesen authored
      llvm-svn: 120720
      9ec20111
    • Jakob Stoklund Olesen's avatar
      Implement the first half of LiveDebugVariables. · 4be0bd79
      Jakob Stoklund Olesen authored
      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
      4be0bd79
  4. Nov 30, 2010
    • Jakob Stoklund Olesen's avatar
      Stub out a new LiveDebugVariables pass. · d4900a64
      Jakob Stoklund Olesen authored
      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
      d4900a64
Loading