diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index 43dc78d..9903f09 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -19,7 +19,7 @@
 #include "llvm/CodeGen/InstrForest.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/NonCopyable.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 
 template<class _MI, class _V> class ValOpIterator;
 
diff --git a/include/llvm/CodeGen/RegClass.h b/include/llvm/CodeGen/RegClass.h
index 1d08502..efe1746 100644
--- a/include/llvm/CodeGen/RegClass.h
+++ b/include/llvm/CodeGen/RegClass.h
@@ -16,19 +16,14 @@
 
 */
 
-
-
 #ifndef REG_CLASS_H
 #define REG_CLASS_H
 
 #include "llvm/CodeGen/IGNode.h"
 #include "llvm/CodeGen/InterferenceGraph.h"
-#include "llvm/CodeGen/TargetMachine.h"
-
-
+#include "llvm/Target/Machine.h"
 #include <stack>
 
-
 typedef vector<unsigned int> ReservedColorListType;
 
 
diff --git a/include/llvm/CodeGen/TargetData.h b/include/llvm/Target/Data.h
similarity index 95%
rename from include/llvm/CodeGen/TargetData.h
rename to include/llvm/Target/Data.h
index cf44970..5573950 100644
--- a/include/llvm/CodeGen/TargetData.h
+++ b/include/llvm/Target/Data.h
@@ -1,4 +1,4 @@
-//===-- llvm/TargetData.h - Data size & alignment routines -------*- C++ -*-==//
+//===-- llvm/Target/Data.h - Data size & alignment routines ------*- C++ -*-==//
 //
 // This file defines target properties related to datatype size/offset/alignment
 // information.  It uses lazy annotations to cache information about how 
@@ -10,8 +10,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CODEGEN_TARGETDATA_H
-#define LLVM_CODEGEN_TARGETDATA_H
+#ifndef LLVM_TARGET_DATA_H
+#define LLVM_TARGET_DATA_H
 
 #include "llvm/Type.h"
 #include <vector>
diff --git a/include/llvm/CodeGen/TargetMachine.h b/include/llvm/Target/Machine.h
similarity index 97%
rename from include/llvm/CodeGen/TargetMachine.h
rename to include/llvm/Target/Machine.h
index 9a72ff9..ae0858a 100644
--- a/include/llvm/CodeGen/TargetMachine.h
+++ b/include/llvm/Target/Machine.h
@@ -1,18 +1,13 @@
-// $Id$ -*-c++-*-
-//***************************************************************************
-// File:
-//	TargetMachine.h
-// 
-// Purpose:
-//	
-// History:
-//	7/12/01	 -  Vikram Adve  -  Created
-//**************************************************************************/
+//===-- llvm/Target/Machine.h - General Target Information -------*- C++ -*-==//
+//
+// This file describes the general parts of a Target machine.
+//
+//===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CODEGEN_TARGETMACHINE_H
-#define LLVM_CODEGEN_TARGETMACHINE_H
+#ifndef LLVM_TARGET_MACHINE_H
+#define LLVM_TARGET_MACHINE_H
 
-#include "llvm/CodeGen/TargetData.h"
+#include "llvm/Target/Data.h"
 #include "llvm/Support/NonCopyable.h"
 #include "llvm/Support/DataTypes.h"
 #include <string>
@@ -24,8 +19,6 @@
 struct MachineInstrDescriptor;
 class TargetMachine;
 
-//************************ Exported Data Types *****************************/
-
 //---------------------------------------------------------------------------
 // Data types used to define information about a single machine instruction
 //---------------------------------------------------------------------------
@@ -518,7 +511,7 @@
   int   l1DCacheMissPenalty;		// 7 or 9 for SPARC IIi
   int   l1ICacheMissPenalty;		// ? for SPARC IIi
   
-  bool	inOrderLoads ;			// true for SPARC IIi
+  bool	inOrderLoads;			// true for SPARC IIi
   bool	inOrderIssue;			// true for SPARC IIi
   bool	inOrderExec;			// false for most architectures
   bool	inOrderRetire;			// true for most architectures
@@ -714,7 +707,7 @@
 
   virtual void colorCallArgs(vector<const Instruction *> & CallInstrList, 
 			     LiveRangeInfo& LRI, 
-			     AddedInstrMapType& AddedInstrMap ) const = 0 ;
+			     AddedInstrMapType& AddedInstrMap ) const = 0;
 
   virtual int getUnifiedRegNum(int RegClassID, int reg) const = 0;
 
diff --git a/include/llvm/CodeGen/Sparc.h b/include/llvm/Target/Sparc.h
similarity index 100%
rename from include/llvm/CodeGen/Sparc.h
rename to include/llvm/Target/Sparc.h
diff --git a/include/llvm/CodeGen/Sparc.h b/include/llvm/Target/TargetMachineImpls.h
similarity index 100%
copy from include/llvm/CodeGen/Sparc.h
copy to include/llvm/Target/TargetMachineImpls.h
diff --git a/lib/CodeGen/InstrSched/InstrScheduling.cpp b/lib/CodeGen/InstrSched/InstrScheduling.cpp
index 2358687..0987572 100644
--- a/lib/CodeGen/InstrSched/InstrScheduling.cpp
+++ b/lib/CodeGen/InstrSched/InstrScheduling.cpp
@@ -12,7 +12,7 @@
 #include "llvm/CodeGen/InstrScheduling.h"
 #include "llvm/CodeGen/SchedPriorities.h"
 #include "llvm/Analysis/LiveVar/BBLiveVar.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Instruction.h"
diff --git a/lib/CodeGen/InstrSched/SchedGraph.cpp b/lib/CodeGen/InstrSched/SchedGraph.cpp
index 05109cb..3c819f6 100644
--- a/lib/CodeGen/InstrSched/SchedGraph.cpp
+++ b/lib/CodeGen/InstrSched/SchedGraph.cpp
@@ -18,7 +18,7 @@
 #include "llvm/Method.h"
 #include "llvm/CodeGen/SchedGraph.h"
 #include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/Support/StringExtras.h"
 #include <algorithm>
 
diff --git a/lib/CodeGen/Makefile b/lib/CodeGen/Makefile
index 1c0e390..b0fba9d 100644
--- a/lib/CodeGen/Makefile
+++ b/lib/CodeGen/Makefile
@@ -1,4 +1,4 @@
 LEVEL = ../..
-DIRS  = TargetMachine InstrSelection InstrSched
+DIRS  = InstrSelection InstrSched
 
 include $(LEVEL)/Makefile.common
diff --git a/lib/CodeGen/RegAlloc/RegClass.h b/lib/CodeGen/RegAlloc/RegClass.h
index 1d08502..efe1746 100644
--- a/lib/CodeGen/RegAlloc/RegClass.h
+++ b/lib/CodeGen/RegAlloc/RegClass.h
@@ -16,19 +16,14 @@
 
 */
 
-
-
 #ifndef REG_CLASS_H
 #define REG_CLASS_H
 
 #include "llvm/CodeGen/IGNode.h"
 #include "llvm/CodeGen/InterferenceGraph.h"
-#include "llvm/CodeGen/TargetMachine.h"
-
-
+#include "llvm/Target/Machine.h"
 #include <stack>
 
-
 typedef vector<unsigned int> ReservedColorListType;
 
 
diff --git a/lib/CodeGen/TargetMachine/Makefile b/lib/CodeGen/TargetMachine/Makefile
deleted file mode 100644
index eefef89..0000000
--- a/lib/CodeGen/TargetMachine/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../../..
-
-LIBRARYNAME = target
-
-include $(LEVEL)/Makefile.common
diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp
index 0b017ad..ff91410 100644
--- a/lib/ExecutionEngine/Interpreter/Execution.cpp
+++ b/lib/ExecutionEngine/Interpreter/Execution.cpp
@@ -13,7 +13,7 @@
 #include "llvm/ConstPoolVals.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Support/DataTypes.h"
-#include "llvm/CodeGen/TargetData.h"
+#include "llvm/Target/Data.h"
 
 static unsigned getOperandSlot(Value *V) {
   SlotNumber *SN = (SlotNumber*)V->getAnnotation(SlotNumberAID);
diff --git a/lib/Target/Makefile b/lib/Target/Makefile
index ebcd23a..7fd02c6 100644
--- a/lib/Target/Makefile
+++ b/lib/Target/Makefile
@@ -1,5 +1,5 @@
 LEVEL = ../..
 DIRS = Sparc
+LIBRARYNAME = target
 
 include $(LEVEL)/Makefile.common
-
diff --git a/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp b/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp
index 2358687..0987572 100644
--- a/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp
+++ b/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp
@@ -12,7 +12,7 @@
 #include "llvm/CodeGen/InstrScheduling.h"
 #include "llvm/CodeGen/SchedPriorities.h"
 #include "llvm/Analysis/LiveVar/BBLiveVar.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Instruction.h"
diff --git a/lib/Target/SparcV9/InstrSched/SchedGraph.cpp b/lib/Target/SparcV9/InstrSched/SchedGraph.cpp
index 05109cb..3c819f6 100644
--- a/lib/Target/SparcV9/InstrSched/SchedGraph.cpp
+++ b/lib/Target/SparcV9/InstrSched/SchedGraph.cpp
@@ -18,7 +18,7 @@
 #include "llvm/Method.h"
 #include "llvm/CodeGen/SchedGraph.h"
 #include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/Support/StringExtras.h"
 #include <algorithm>
 
diff --git a/lib/Target/SparcV9/RegAlloc/RegClass.h b/lib/Target/SparcV9/RegAlloc/RegClass.h
index 1d08502..efe1746 100644
--- a/lib/Target/SparcV9/RegAlloc/RegClass.h
+++ b/lib/Target/SparcV9/RegAlloc/RegClass.h
@@ -16,19 +16,14 @@
 
 */
 
-
-
 #ifndef REG_CLASS_H
 #define REG_CLASS_H
 
 #include "llvm/CodeGen/IGNode.h"
 #include "llvm/CodeGen/InterferenceGraph.h"
-#include "llvm/CodeGen/TargetMachine.h"
-
-
+#include "llvm/Target/Machine.h"
 #include <stack>
 
-
 typedef vector<unsigned int> ReservedColorListType;
 
 
diff --git a/lib/Target/SparcV9/SparcV9Internals.h b/lib/Target/SparcV9/SparcV9Internals.h
index 606966d..f9a344b 100644
--- a/lib/Target/SparcV9/SparcV9Internals.h
+++ b/lib/Target/SparcV9/SparcV9Internals.h
@@ -8,7 +8,7 @@
 #ifndef SPARC_INTERNALS_H
 #define SPARC_INTERNALS_H
 
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "SparcRegInfo.h"
 
 #include <sys/types.h>
diff --git a/lib/Target/SparcV9/SparcV9RegInfo.h b/lib/Target/SparcV9/SparcV9RegInfo.h
index 41a6d00..3ebef55 100644
--- a/lib/Target/SparcV9/SparcV9RegInfo.h
+++ b/lib/Target/SparcV9/SparcV9RegInfo.h
@@ -4,19 +4,17 @@
    Purpose: Contains the description of integer register class of Sparc
 */
 
-
 #ifndef SPARC_INT_REG_CLASS_H
 #define SPARC_INT_REG_CLASS_H
 
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 
 //-----------------------------------------------------------------------------
 // Integer Register Class
 //-----------------------------------------------------------------------------
 
-
 // Int register names in same order as enum in class SparcIntRegOrder
-
+//
 static string const IntRegNames[] = 
   {       "g1", "g2", "g3", "g4", "g5", "g6", "g7",
     "o0", "o1", "o2", "o3", "o4", "o5",       "o7",
diff --git a/lib/CodeGen/TargetMachine/TargetData.cpp b/lib/Target/TargetData.cpp
similarity index 98%
rename from lib/CodeGen/TargetMachine/TargetData.cpp
rename to lib/Target/TargetData.cpp
index fd9dd26..2e2ffd8 100644
--- a/lib/CodeGen/TargetMachine/TargetData.cpp
+++ b/lib/Target/TargetData.cpp
@@ -10,7 +10,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/CodeGen/TargetData.h"
+#include "llvm/Target/Data.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/ConstPoolVals.h"
 
diff --git a/lib/CodeGen/TargetMachine/TargetMachine.cpp b/lib/Target/TargetMachine.cpp
similarity index 92%
rename from lib/CodeGen/TargetMachine/TargetMachine.cpp
rename to lib/Target/TargetMachine.cpp
index 0a9a739..a9e376e 100644
--- a/lib/CodeGen/TargetMachine/TargetMachine.cpp
+++ b/lib/Target/TargetMachine.cpp
@@ -1,23 +1,12 @@
-// $Id$
-//***************************************************************************
-// File:
-//	TargetMachine.cpp
-// 
-// Purpose:
-//	
-// History:
-//	7/12/01	 -  Vikram Adve  -  Created
-//**************************************************************************/
+//===-- TargetMachine.cpp - General Target Information ---------------------==//
+//
+// This file describes the general parts of a Target machine.
+//
+//===----------------------------------------------------------------------===//
 
-
-//*************************** User Include Files ***************************/
-
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/DerivedTypes.h"
 
-//************************ Exported Constants ******************************/
-
-
 // External object describing the machine instructions
 // Initialized only when the TargetMachine class is created
 // and reset when that class is destroyed.
@@ -26,17 +15,12 @@
 
 resourceId_t MachineResource::nextId = 0;
 
-//************************* Forward Declarations **************************/
-
 static cycles_t	ComputeMinGap		(const InstrRUsage& fromRU,
 					 const InstrRUsage& toRU);
 
 static bool	RUConflict		(const vector<resourceId_t>& fromRVec,
 					 const vector<resourceId_t>& fromRVec);
 
-
-//************************ Class Implementations **************************/
-
 //---------------------------------------------------------------------------
 // class TargetMachine
 // 
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index fb5c1fc..789087f 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -1,14 +1,13 @@
-//===------------------------------------------------------------------------===
-// LLVM 'LLC' UTILITY 
+//===-- llc.cpp - Implement the LLVM Compiler -----------------------------===//
 //
 // This is the llc compiler driver.
 //
-//===------------------------------------------------------------------------===
+//===----------------------------------------------------------------------===//
 
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Optimizations/Normalize.h"
-#include "llvm/CodeGen/Sparc.h"
-#include "llvm/CodeGen/TargetMachine.h"
+#include "llvm/Target/Sparc.h"
+#include "llvm/Target/Machine.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Module.h"
 #include "llvm/Method.h"
@@ -20,46 +19,39 @@
   NormalizePhiConstantArgs(method);
 }
 
-
-static bool CompileModule(Module *M, TargetMachine &Target) {
-  for (Module::const_iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI) {
-    Method *Meth = *MI;
-      
-    NormalizeMethod(Meth);
-      
-    if (Target.compileMethod(Meth)) return true;
-  }
-  
-  return false;
-}
-
-
-
-//---------------------------------------------------------------------------
+//===----------------------------------------------------------------------===//
 // Function main()
+//===----------------------------------------------------------------------===//
 // 
 // Entry point for the llc compiler.
-//---------------------------------------------------------------------------
-
+//
 int main(int argc, char** argv) {
   cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");
   TargetMachine *Target = allocateSparcTargetMachine();
   
-  Module *module = ParseBytecodeFile(InputFilename);
-  if (module == 0) {
+  Module *M = ParseBytecodeFile(InputFilename);
+  if (M == 0) {
     cerr << "bytecode didn't read correctly.\n";
+    delete Target;
     return 1;
   }
 
-  if (CompileModule(module, *Target)) {
-    cerr << "Error compiling " << InputFilename << "!\n";
-    delete module;
-    return 1;
+  bool Failed = false;
+  for (Module::const_iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI) {
+    Method *Meth = *MI;
+    
+    NormalizeMethod(Meth);
+    
+    if (Target->compileMethod(Meth)) {
+      cerr << "Error compiling " << InputFilename << "!\n";
+      Failed = true;
+      break;
+    }
   }
   
   // Clean up and exit
-  delete module;
+  delete M;
   delete Target;
-  return 0;
+  return Failed;
 }
 
