Convert to new simpler, more powerful pass structure
authorChris Lattner <sabre@nondot.org>
Thu, 18 Oct 2001 05:28:44 +0000 (05:28 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 18 Oct 2001 05:28:44 +0000 (05:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@882 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llc/llc.cpp

index a072de309e9af01ddf9248eefc271227755fa0df..297e95c111bda14e929ae6abe1120ae3e0683a85 100644 (file)
@@ -52,7 +52,7 @@ static inline string GetFileNameRoot(const string &InputFilename) {
 // Native code generation for a specified target.
 //===---------------------------------------------------------------------===//
 
-class GenerateCodeForTarget : public ConcretePass {
+class GenerateCodeForTarget : public Pass {
   TargetMachine &Target;
 public:
   inline GenerateCodeForTarget(TargetMachine &T) : Target(T) {}
@@ -60,7 +60,7 @@ public:
   // doPerMethodWork - This method does the actual work of generating code for
   // the specified method.
   //
-  bool doPerMethodWorkVirt(Method *M) {
+  bool doPerMethodWork(Method *M) {
     if (!M->isExternal() && Target.compileMethod(M)) {
       cerr << "Error compiling " << InputFilename << "!\n";
       return true;
@@ -77,27 +77,22 @@ public:
 // Write assembly code to specified output stream
 //===---------------------------------------------------------------------===//
 
-class EmitAssembly : public ConcretePass {
+class EmitAssembly : public Pass {
   const TargetMachine &Target;   // Target to compile for
   ostream *Out;                  // Stream to print on
   bool DeleteStream;             // Delete stream in dtor?
-
-  Module *TheMod;
 public:
   inline EmitAssembly(const TargetMachine &T, ostream *O, bool D)
     : Target(T), Out(O), DeleteStream(D) {}
 
-  virtual bool doPassInitializationVirt(Module *M) {
-    TheMod = M;
-    return false;
-  }
 
-  ~EmitAssembly() {
+  virtual bool doPassFinalization(Module *M) {
     // TODO: This should be performed as a moduleCleanup function, but we don't
     // have one yet!
-    Target.emitAssembly(TheMod, *Out);
+    Target.emitAssembly(M, *Out);
 
     if (DeleteStream) delete Out;
+    return false;
   }
 };