From 685639df42c35b533b82c1a7f122532742eba311 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 18 Oct 2001 05:28:44 +0000 Subject: [PATCH] Convert to new simpler, more powerful pass structure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@882 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llc/llc.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index a072de309e9..297e95c111b 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -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; } }; -- 2.34.1