diff --git a/lib/CodeGen/InstrSelection/InstrSelection.cpp b/lib/CodeGen/InstrSelection/InstrSelection.cpp
index aac5757..4843a70 100644
--- a/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -12,22 +12,20 @@
 
 //*************************** User Include Files ***************************/
 
+#include "llvm/CodeGen/InstrSelection.h"
 #include "llvm/Method.h"
 #include "llvm/BasicBlock.h"
 #include "llvm/Type.h"
 #include "llvm/iMemory.h"
 #include "llvm/Instruction.h"
 #include "llvm/LLC/CompileContext.h"
-#include "llvm/CodeGen/InstrForest.h"
 #include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/CodeGen/InstrSelection.h"
 
 
 //************************* Forward Declarations ***************************/
 
-static bool SelectInstructionsForTree	(BasicTreeNode* treeRoot,
-					 int goalnt,
-					 CompileContext& ccontext);
+static bool SelectInstructionsForTree(BasicTreeNode* treeRoot, int goalnt,
+				      CompileContext& ccontext);
 
 
 //******************* Externally Visible Functions *************************/
@@ -38,10 +36,8 @@
 // Returns true if instruction selection failed, false otherwise.
 //---------------------------------------------------------------------------
 
-bool
-SelectInstructionsForMethod(Method* method,
-			    CompileContext& ccontext)
-{
+bool SelectInstructionsForMethod(Method* method, CompileContext& ccontext,
+				 int DebugLevel) {
   bool failed = false;
   
   InstrForest instrForest;
@@ -63,8 +59,7 @@
       // Invoke BURM to label each tree node with a state
       (void) burm_label(basicNode);
       
-      if (ccontext.getOptions().IntOptionValue(DEBUG_INSTR_SELECT_OPT)
-	  >= DEBUG_BURG_TREES)
+      if (DebugLevel >= DEBUG_BURG_TREES)
 	{
 	  printcover(basicNode, 1, 0);
 	  cerr << "\nCover cost == " << treecost(basicNode, 1, 0) << "\n\n";
@@ -81,8 +76,7 @@
   
   if (!failed)
     {
-      if ( ccontext.getOptions().IntOptionValue(DEBUG_INSTR_SELECT_OPT)
-	   >= DEBUG_INSTR_TREES)
+      if (DebugLevel >= DEBUG_INSTR_TREES)
 	{
 	  cout << "\n\n*** Instruction trees for method "
 	       << (method->hasName()? method->getName() : "")
@@ -90,8 +84,8 @@
 	  instrForest.dump();
 	}
       
-      if (ccontext.getOptions().IntOptionValue(DEBUG_INSTR_SELECT_OPT) > 0)
-	PrintMachineInstructions(method, ccontext);	
+      if (DebugLevel >= DEBUG_TREES_NONE)
+	PrintMachineInstructions(method);
     }
   
   return false;
@@ -139,10 +133,7 @@
 }
 
 
-void
-PrintMachineInstructions(Method* method,
-			 CompileContext& ccontext)
-{
+void PrintMachineInstructions(Method* method) {
   cout << "\n" << method->getReturnType()
        << " \"" << method->getName() << "\"" << endl;
   
