Remove old style hacks to register AsmPrinter into TargetMachine.
[oota-llvm.git] / lib / Target / Sparc / SparcTargetMachine.cpp
index 255036311341979b13d7a0c78881762e02c188bb..c872f4607876fbc12e98f4401c956d2fda8dacd1 100644 (file)
@@ -22,10 +22,6 @@ using namespace llvm;
 extern Target TheSparcTarget;
 static RegisterTarget<SparcTargetMachine> X(TheSparcTarget, "sparc", "SPARC");
 
-// No assembler printer by default
-SparcTargetMachine::AsmPrinterCtorFn SparcTargetMachine::AsmPrinterCtor = 0;
-
-
 // Force static initialization.
 extern "C" void LLVMInitializeSparcTarget() { }
 
@@ -64,9 +60,9 @@ bool SparcTargetMachine::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;
 }