Frontend: Drop unnecessary TargetData argument to EmitBackendOutput, we always
create modules which have target data strings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105576 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Frontend/BackendUtil.cpp b/lib/Frontend/BackendUtil.cpp
index 6b389a6..2ceb831 100644
--- a/lib/Frontend/BackendUtil.cpp
+++ b/lib/Frontend/BackendUtil.cpp
@@ -39,7 +39,6 @@
   const CodeGenOptions &CodeGenOpts;
   const TargetOptions &TargetOpts;
   Module *TheModule;
-  TargetData *TheTargetData;
 
   Timer CodeGenerationTime;
 
@@ -51,7 +50,7 @@
   FunctionPassManager *getCodeGenPasses() const {
     if (!CodeGenPasses) {
       CodeGenPasses = new FunctionPassManager(TheModule);
-      CodeGenPasses->add(new TargetData(*TheTargetData));
+      CodeGenPasses->add(new TargetData(TheModule));
     }
     return CodeGenPasses;
   }
@@ -59,7 +58,7 @@
   PassManager *getPerModulePasses() const {
     if (!PerModulePasses) {
       PerModulePasses = new PassManager();
-      PerModulePasses->add(new TargetData(*TheTargetData));
+      PerModulePasses->add(new TargetData(TheModule));
     }
     return PerModulePasses;
   }
@@ -67,7 +66,7 @@
   FunctionPassManager *getPerFunctionPasses() const {
     if (!PerFunctionPasses) {
       PerFunctionPasses = new FunctionPassManager(TheModule);
-      PerFunctionPasses->add(new TargetData(*TheTargetData));
+      PerFunctionPasses->add(new TargetData(TheModule));
     }
     return PerFunctionPasses;
   }
@@ -82,10 +81,9 @@
 public:
   EmitAssemblyHelper(Diagnostic &_Diags,
                      const CodeGenOptions &CGOpts, const TargetOptions &TOpts,
-                     Module *M, TargetData *TD)
+                     Module *M)
     : Diags(_Diags), CodeGenOpts(CGOpts), TargetOpts(TOpts),
-      TheModule(M), TheTargetData(TD),
-      CodeGenerationTime("Code Generation Time"),
+      TheModule(M), CodeGenerationTime("Code Generation Time"),
       CodeGenPasses(0), PerModulePasses(0), PerFunctionPasses(0) {}
 
   ~EmitAssemblyHelper() {
@@ -320,9 +318,8 @@
 
 void clang::EmitBackendOutput(Diagnostic &Diags, const CodeGenOptions &CGOpts,
                               const TargetOptions &TOpts, Module *M,
-                              TargetData *TD, BackendAction Action,
-                              raw_ostream *OS) {
-  EmitAssemblyHelper AsmHelper(Diags, CGOpts, TOpts, M, TD);
+                              BackendAction Action, raw_ostream *OS) {
+  EmitAssemblyHelper AsmHelper(Diags, CGOpts, TOpts, M);
 
   AsmHelper.EmitAssembly(Action, OS);
 }
diff --git a/lib/Frontend/CodeGenAction.cpp b/lib/Frontend/CodeGenAction.cpp
index a3eba0f..99af838 100644
--- a/lib/Frontend/CodeGenAction.cpp
+++ b/lib/Frontend/CodeGenAction.cpp
@@ -20,11 +20,11 @@
 #include "clang/Frontend/FrontendDiagnostic.h"
 #include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
+#include "llvm/Pass.h"
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/SourceMgr.h"
 #include "llvm/Support/Timer.h"
-#include "llvm/Target/TargetData.h"
 using namespace clang;
 using namespace llvm;
 
@@ -42,7 +42,6 @@
     llvm::OwningPtr<CodeGenerator> Gen;
 
     llvm::OwningPtr<llvm::Module> TheModule;
-    llvm::TargetData *TheTargetData;
 
   public:
     BackendConsumer(BackendAction action, Diagnostic &_Diags,
@@ -56,15 +55,10 @@
       TargetOpts(targetopts),
       AsmOutStream(OS),
       LLVMIRGeneration("LLVM IR Generation Time"),
-      Gen(CreateLLVMCodeGen(Diags, infile, compopts, C)),
-      TheTargetData(0) {
+      Gen(CreateLLVMCodeGen(Diags, infile, compopts, C)) {
       llvm::TimePassesIsEnabled = TimePasses;
     }
 
-    ~BackendConsumer() {
-      delete TheTargetData;
-    }
-
     llvm::Module *takeModule() { return TheModule.take(); }
 
     virtual void Initialize(ASTContext &Ctx) {
@@ -76,7 +70,6 @@
       Gen->Initialize(Ctx);
 
       TheModule.reset(Gen->GetModule());
-      TheTargetData = new llvm::TargetData(Ctx.Target.getTargetDescription());
 
       if (llvm::TimePassesIsEnabled)
         LLVMIRGeneration.stopTimer();
@@ -109,7 +102,7 @@
       }
 
       // Silently ignore if we weren't initialized for some reason.
-      if (!TheModule || !TheTargetData)
+      if (!TheModule)
         return;
 
       // Make sure IR generation is happy with the module. This is released by
@@ -134,7 +127,7 @@
                                         this);
 
       EmitBackendOutput(Diags, CodeGenOpts, TargetOpts,
-                        TheModule.get(), TheTargetData, Action, AsmOutStream);
+                        TheModule.get(), Action, AsmOutStream);
       
       Ctx.setInlineAsmDiagnosticHandler(OldHandler, OldContext);
     }