diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp
index 8bb4c2e..a596c08 100644
--- a/CodeGen/CodeGenModule.cpp
+++ b/CodeGen/CodeGenModule.cpp
@@ -24,10 +24,8 @@
 using namespace CodeGen;
 
 
-CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M, 
-                             const llvm::TargetData &TD)
-  : Context(C), TheModule(M), TheTargetData(TD), 
-    Types(C, M, TD), CFConstantStringClassRef(0) {}
+CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M)
+  : Context(C), TheModule(M), Types(C, M), CFConstantStringClassRef(0) {}
 
 llvm::Constant *CodeGenModule::GetAddrOfGlobalDecl(const ValueDecl *D) {
   // See if it is already in the map.
diff --git a/CodeGen/CodeGenModule.h b/CodeGen/CodeGenModule.h
index a044c0d..4ca4f8c 100644
--- a/CodeGen/CodeGenModule.h
+++ b/CodeGen/CodeGenModule.h
@@ -23,7 +23,6 @@
   class Constant;
   class Function;
   class GlobalVariable;
-  class TargetData;
 }
 
 namespace clang {
@@ -40,7 +39,6 @@
 class CodeGenModule {
   ASTContext &Context;
   llvm::Module &TheModule;
-  const llvm::TargetData &TheTargetData;
   CodeGenTypes Types;
 
   llvm::Function *MemCpyFn;
@@ -51,7 +49,7 @@
   
   std::vector<llvm::Function *> BuiltinFunctions;
 public:
-  CodeGenModule(ASTContext &C, llvm::Module &M, const llvm::TargetData &TD);
+  CodeGenModule(ASTContext &C, llvm::Module &M);
   
   ASTContext &getContext() const { return Context; }
   llvm::Module &getModule() const { return TheModule; }
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index 745ba1d..017b65c 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -16,7 +16,6 @@
 #include "clang/AST/AST.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
-#include "llvm/Target/TargetData.h"
 
 using namespace clang;
 using namespace CodeGen;
@@ -40,7 +39,7 @@
     /// layoutStructFields - Do the actual work and lay out all fields. Create
     /// corresponding llvm struct type.  This should be invoked only after
     /// all fields are added.
-    void layoutStructFields(CodeGenTypes &CGT, const RecordLayout &RL);
+    void layoutStructFields(CodeGenTypes &CGT);
 
     /// layoutUnionFields - Do the actual work and lay out all fields. Create
     /// corresponding llvm struct type.  This should be invoked only after
@@ -61,9 +60,8 @@
   };
 }
 
-CodeGenTypes::CodeGenTypes(ASTContext &Ctx, llvm::Module& M,
-                           const llvm::TargetData &TD)
-  : Context(Ctx), Target(Ctx.Target), TheModule(M), TheTargetData(TD) {
+CodeGenTypes::CodeGenTypes(ASTContext &Ctx, llvm::Module& M)
+  : Context(Ctx), Target(Ctx.Target), TheModule(M) {
 }
 
 CodeGenTypes::~CodeGenTypes() {
@@ -247,8 +245,7 @@
       RecordOrganizer RO;
       for (unsigned i = 0, e = RD->getNumMembers(); i != e; ++i)
         RO.addField(RD->getMember(i));
-      const RecordLayout &RL = Context.getRecordLayout(RD, SourceLocation());
-      RO.layoutStructFields(*this, RL);
+      RO.layoutStructFields(*this);
 
       // Get llvm::StructType.
       RecordLayoutInfo *RLI = new RecordLayoutInfo(RO.getLLVMType());
@@ -355,21 +352,16 @@
 ///    - Ignore bit fields
 ///    - Ignore field aligments
 ///    - Ignore packed structs
-void RecordOrganizer::layoutStructFields(CodeGenTypes &CGT,
-                                         const RecordLayout &RL) {
+void RecordOrganizer::layoutStructFields(CodeGenTypes &CGT) {
   // FIXME : Use SmallVector
   std::vector<const llvm::Type*> Fields;
   unsigned FieldNo = 0;
-  uint64_t Cursor = 0;
-
   for (llvm::SmallVector<const FieldDecl *, 8>::iterator I = FieldDecls.begin(),
          E = FieldDecls.end(); I != E; ++I) {
     const FieldDecl *FD = *I;
     const llvm::Type *Ty = CGT.ConvertType(FD->getType());
 
-    uint64_t Offset = RL.getFieldOffset(FieldNo);
-    assert (Offset == Cursor && "FIXME Invalid struct layout");
-    Cursor += CGT.getTargetData().getTypeSizeInBits(Ty);
+    // FIXME : Layout FieldDecl FD
 
     Fields.push_back(Ty);
     CGT.addFieldInfo(FD, FieldNo++);
diff --git a/CodeGen/CodeGenTypes.h b/CodeGen/CodeGenTypes.h
index b897135..95aea85 100644
--- a/CodeGen/CodeGenTypes.h
+++ b/CodeGen/CodeGenTypes.h
@@ -21,7 +21,6 @@
   class Module;
   class Type;
   class PATypeHolder;
-  class TargetData;
 }
 
 namespace clang {
@@ -62,7 +61,6 @@
   ASTContext &Context;
   TargetInfo &Target;
   llvm::Module& TheModule;
-  const llvm::TargetData& TheTargetData;
   
   llvm::DenseMap<const TagDecl*, llvm::Type*> TagDeclTypes;
 
@@ -93,10 +91,9 @@
   /// interface to convert type T into a llvm::Type.
   const llvm::Type *ConvertNewType(QualType T);
 public:
-  CodeGenTypes(ASTContext &Ctx, llvm::Module &M, const llvm::TargetData &TD);
+  CodeGenTypes(ASTContext &Ctx, llvm::Module &M);
   ~CodeGenTypes();
   
-  const llvm::TargetData &getTargetData() const { return TheTargetData; }
   TargetInfo &getTarget() const { return Target; }
   ASTContext &getContext() const { return Context; }
 
diff --git a/CodeGen/ModuleBuilder.cpp b/CodeGen/ModuleBuilder.cpp
index a7586b6..4a5a470 100644
--- a/CodeGen/ModuleBuilder.cpp
+++ b/CodeGen/ModuleBuilder.cpp
@@ -18,9 +18,8 @@
 
 /// Init - Create an ModuleBuilder with the specified ASTContext.
 clang::CodeGen::BuilderTy *
-clang::CodeGen::Init(ASTContext &Context, llvm::Module &M,
-                     const llvm::TargetData &TD) {
-  return new CodeGenModule(Context, M, TD);
+clang::CodeGen::Init(ASTContext &Context, llvm::Module &M) {
+  return new CodeGenModule(Context, M);
 }
 
 void clang::CodeGen::Terminate(BuilderTy *B) {
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index 0fcebca..37d637b 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -379,19 +379,14 @@
 // LLVM Emitter
 
 #include "clang/Basic/Diagnostic.h"
-#include "clang/Basic/TargetInfo.h"
 #include "clang/CodeGen/ModuleBuilder.h"
 #include "llvm/Module.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetMachineRegistry.h"
 #include <iostream>
 
 namespace {
   class LLVMEmitter : public ASTConsumer {
     Diagnostic &Diags;
     llvm::Module *M;
-    const llvm::TargetData *TD;
     ASTContext *Ctx;
     CodeGen::BuilderTy *Builder;
   public:
@@ -399,16 +394,7 @@
     virtual void Initialize(ASTContext &Context, unsigned MainFileID) {
       Ctx = &Context;
       M = new llvm::Module("foo");
-      M->setTargetTriple(Ctx->Target.getTargetTriple());
-      std::string Err;
-      const llvm::TargetMachineRegistry::entry *TME = 
-        llvm::TargetMachineRegistry::getClosestStaticTargetForModule(*M, Err);
-      assert(TME && "Unable to determine target machine");
-      // FIXME : Set appropriate subtarget features.
-      std::string FeatureStr;
-      llvm::TargetMachine *TheMachine =  TME->CtorFn(*M, FeatureStr);
-      TD = TheMachine->getTargetData();
-      Builder = CodeGen::Init(Context, *M, *TD);
+      Builder = CodeGen::Init(Context, *M);
     }
     
     virtual void HandleTopLevelDecl(Decl *D) {
diff --git a/Driver/Makefile b/Driver/Makefile
index bf86151..6d2cfe0 100644
--- a/Driver/Makefile
+++ b/Driver/Makefile
@@ -4,12 +4,8 @@
 
 TOOLNAME = clang
 USEDLIBS = clangCodeGen.a clangAnalysis.a clangRewrite.a clangSEMA.a \
-           clangAST.a clangParse.a clangLex.a clangBasic.a LLVMX86 \
+           clangAST.a clangParse.a clangLex.a clangBasic.a \
            LLVMCore.a LLVMSupport.a LLVMSystem.a \
-           LLVMBitWriter.a LLVMBitReader.a LLVMTarget.a LLVMCodeGen.a \
-           LLVMSelectionDAG.a LLVMScalarOpts.a LLVMTransformUtils.a \
-           LLVMCore.a LLVMAnalysis.a
-	
-	
+           LLVMBitWriter.a LLVMBitReader.a
 
 include $(LEVEL)/Makefile.common
diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h
index f766f9e..334f878 100644
--- a/include/clang/Basic/TargetInfo.h
+++ b/include/clang/Basic/TargetInfo.h
@@ -218,11 +218,6 @@
     getLongLongInfo(Size, Align, Loc);
     return static_cast<unsigned>(Size);
   }
-
-  const char *getTargetTriple() {
-    // FIXME !
-    return "i686-apple-darwin9";
-  }
 private:
   void ComputeWCharInfo(SourceLocation Loc);
 };
diff --git a/include/clang/CodeGen/ModuleBuilder.h b/include/clang/CodeGen/ModuleBuilder.h
index 96b0f59..0b1ae47 100644
--- a/include/clang/CodeGen/ModuleBuilder.h
+++ b/include/clang/CodeGen/ModuleBuilder.h
@@ -16,7 +16,6 @@
 
 namespace llvm {
   class Module;
-  class TargetData;
 }
 
 namespace clang {
@@ -30,8 +29,7 @@
   typedef void BuilderTy;
   
   /// Init - Create an ModuleBuilder with the specified ASTContext.
-  BuilderTy *Init(ASTContext &Context, llvm::Module &M,
-                  const llvm::TargetData &TD);
+  BuilderTy *Init(ASTContext &Context, llvm::Module &M);
   
   /// CodeGenFunction - Convert the AST node for a FunctionDecl into LLVM.
   ///
