diff --git a/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.h b/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.h
index 38f8dd7..8efa757 100644
--- a/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.h
+++ b/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.h
@@ -32,12 +32,12 @@
 
 #include "llvm/CodeGen/RegClass.h"
 #include "llvm/CodeGen/LiveRangeInfo.h"
-#include "llvm/Analysis/LoopDepth.h"
 #include <deque>
 class MachineCodeForMethod;
 class MachineRegInfo;
 class MethodLiveVarInfo;
 class MachineInstr;
+namespace cfg { class LoopDepthCalculator; }
 
 //----------------------------------------------------------------------------
 // Class AddedInstrns:
@@ -66,8 +66,7 @@
 //----------------------------------------------------------------------------
 
 
-class PhyRegAlloc: public NonCopyable
-{
+class PhyRegAlloc: public NonCopyable {
 
   std::vector<RegClass *> RegClassList; // vector of register classes
   const TargetMachine &TM;              // target machine
@@ -81,10 +80,20 @@
 
   
   AddedInstrMapType AddedInstrMap;      // to store instrns added in this phase
-  cfg::LoopDepthCalculator LoopDepthCalc;    // to calculate loop depths 
+  cfg::LoopDepthCalculator *LoopDepthCalc;    // to calculate loop depths 
   ReservedColorListType ResColList;     // A set of reserved regs if desired.
                                         // currently not used
 
+public:
+  PhyRegAlloc(Method *M, const TargetMachine& TM, MethodLiveVarInfo *Lvi,
+              cfg::LoopDepthCalculator *LoopDepthCalc);
+  ~PhyRegAlloc();
+
+  // main method called for allocating registers
+  //
+  void allocateRegisters();           
+private:
+
 
 
   //------- ------------------ private methods---------------------------------
@@ -134,16 +143,6 @@
   int getUniRegNotUsedByThisInst(RegClass *RC, const MachineInstr *MInst);
 
   void addInterf4PseudoInstr(const MachineInstr *MInst);
-
- public:
-  PhyRegAlloc(Method *const M, const TargetMachine& TM, 
-	      MethodLiveVarInfo *const Lvi);
-  ~PhyRegAlloc(); 
-
-  // main method called for allocating registers
-  //
-  void allocateRegisters();           
-
 };
 
 
