Reapply r75764: [llvm up] Switch to using the new TargetRegistry


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75821 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Frontend/Backend.cpp b/lib/Frontend/Backend.cpp
index fe95243..2fa4e36 100644
--- a/lib/Frontend/Backend.cpp
+++ b/lib/Frontend/Backend.cpp
@@ -33,7 +33,7 @@
 #include "llvm/Target/SubtargetFeature.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetMachineRegistry.h"
+#include "llvm/Target/TargetRegistry.h"
 using namespace clang;
 using namespace llvm;
 
@@ -205,9 +205,9 @@
     bool Fast = CompileOpts.OptimizationLevel == 0;
 
     // Create the TargetMachine for generating code.
-    const TargetMachineRegistry::entry *TME = 
-      TargetMachineRegistry::getClosestStaticTargetForModule(*TheModule, Error);
-    if (!TME) {
+    const llvm::Target *TheTarget = 
+      TargetRegistry::getClosestStaticTargetForModule(*TheModule, Error);
+    if (!TheTarget) {
       Error = std::string("Unable to get target machine: ") + Error;
       return false;
     }
@@ -222,7 +222,7 @@
         Features.AddFeature(*it);
       FeaturesStr = Features.getString();
     }
-    TargetMachine *TM = TME->CtorFn(*TheModule, FeaturesStr);
+    TargetMachine *TM = TheTarget->createTargetMachine(*TheModule, FeaturesStr);
     
     // Set register scheduler & allocation policy.
     RegisterScheduler::setDefault(createDefaultScheduler);