Fix PR16508.
[oota-llvm.git] / lib / CodeGen / LiveDebugVariables.h
index a69b974fe373c61466c7d8fea5d29f818e06162a..3ce3c398bd4b4c50d2f39f20e51873338b552939 100644 (file)
 #ifndef LLVM_CODEGEN_LIVEDEBUGVARIABLES_H
 #define LLVM_CODEGEN_LIVEDEBUGVARIABLES_H
 
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 
 namespace llvm {
 
+class LiveInterval;
+class VirtRegMap;
+
 class LiveDebugVariables : public MachineFunctionPass {
   void *pImpl;
 public:
@@ -40,9 +44,15 @@ public:
   ///               register.
   void renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx);
 
+  /// splitRegister - Move any user variables in OldReg to the live ranges in
+  /// NewRegs where they are live. Mark the values as unavailable where no new
+  /// register is live.
+  void splitRegister(unsigned OldReg, ArrayRef<LiveInterval*> NewRegs);
+
   /// emitDebugValues - Emit new DBG_VALUE instructions reflecting the changes
   /// that happened during register allocation.
-  void emitDebugValues();
+  /// @param VRM Rename virtual registers according to map.
+  void emitDebugValues(VirtRegMap *VRM);
 
   /// dump - Print data structures to dbgs().
   void dump();