Remove old style hacks to register AsmPrinter into TargetMachine.
[oota-llvm.git] / lib / Target / IA64 / IA64TargetMachine.cpp
index 5355075f8b387307f0373017924d329a1a76af7a..e48d0701a2bffbf8ccdc086d45b0a21ad729d0f7 100644 (file)
@@ -24,9 +24,6 @@ extern Target TheIA64Target;
 static RegisterTarget<IA64TargetMachine> X(TheIA64Target, "ia64",
                                            "IA-64 (Itanium) [experimental]");
 
-// No assembler printer by default
-IA64TargetMachine::AsmPrinterCtorFn IA64TargetMachine::AsmPrinterCtor = 0;
-
 // Force static initialization.
 extern "C" void LLVMInitializeIA64Target() { }
 
@@ -65,10 +62,9 @@ bool IA64TargetMachine::addAssemblyEmitter(PassManagerBase &PM,
                                            CodeGenOpt::Level OptLevel,
                                            bool Verbose,
                                            formatted_raw_ostream &Out) {
-  // Output assembly language.
-  assert(AsmPrinterCtor && "AsmPrinter was not linked in");
-  if (AsmPrinterCtor)
-    PM.add(AsmPrinterCtor(Out, *this, Verbose));
+  FunctionPass *Printer = getTarget().createAsmPrinter(Out, *this, Verbose);
+  if (!Printer)
+    llvm_report_error("unable to create assembly printer");
+  PM.add(Printer);
   return false;
 }
-