ConcretePass should not be a templated class!
authorChris Lattner <sabre@nondot.org>
Mon, 15 Oct 2001 17:47:13 +0000 (17:47 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 15 Oct 2001 17:47:13 +0000 (17:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@838 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/ChangeAllocations.h
include/llvm/Transforms/Instrumentation/TraceValues.h
include/llvm/Transforms/Pass.h
include/llvm/Transforms/PrintModulePass.h
tools/llc/llc.cpp

index 08339cd64e83287dabd8de0168576647b262ea63..4c36b2d4c0032f77f81daae88e9158ff86ed9d18 100644 (file)
@@ -13,7 +13,7 @@
 #include "llvm/Transforms/Pass.h"
 class TargetData;
 
-class LowerAllocations : public ConcretePass<LowerAllocations> {
+class LowerAllocations : public ConcretePass {
   Method *MallocMeth;   // Methods in the module we are processing
   Method *FreeMeth;     // Initialized by doPassInitializationVirt
 
index 8f4ee1d981baaac938288515a476f53eccda4967..cf27a344cedf4af0a177682c14e0663e55f17d8b 100644 (file)
@@ -70,7 +70,7 @@ void            InsertCodeToTraceValues (Method* method,
                                          bool traceMethodExits);
 
 
-class InsertTraceCode : public ConcretePass<InsertTraceCode> {
+class InsertTraceCode : public ConcretePass {
   bool TraceBasicBlockExits, TraceMethodExits;
 public:
   InsertTraceCode(bool traceBasicBlockExits, bool traceMethodExits)
index c6ba84ec5d07a25f914fcc6be61653e8b1600421..f7cc17cca83479962e4544213abaeeb54e62345c 100644 (file)
@@ -113,15 +113,13 @@ struct Pass {
 
 
 //===----------------------------------------------------------------------===//
-// ConcretePass<t> class - This is used by implementations of passes to fill in
-// boiler plate code.  SubClass should be a concrete class that is derived from
-// ConcretePass.
+// ConcretePass class - This is used by implementations of passes to fill in
+// boiler plate code.
 //
 // Deriving from this class is good because if new methods are added in the 
 // future, code for your pass won't have to change to stub out the unused
 // functionality.
 //
-template<class SubClass>
 struct ConcretePass : public Pass {
 
   // doPassInitializationVirt - Default to success.
@@ -143,7 +141,7 @@ struct ConcretePass : public Pass {
 // SubClass should be a concrete class that is derived from StatelessPass.
 //
 template<class SubClass>
-struct StatelessPass : public ConcretePass<SubClass> {
+struct StatelessPass : public ConcretePass {
 
   //===--------------------------------------------------------------------===//
   // The externally useful entry points - These are specialized to avoid the
index 90cd369f7b677a55585441eb609e0be9f9e4824d..0e2cee1599754537feba8931ce747cd77d3fa5f1 100644 (file)
@@ -11,7 +11,7 @@
 #include "llvm/Transforms/Pass.h"
 #include "llvm/Assembly/Writer.h"
 
-class PrintModulePass : public ConcretePass<PrintModulePass> {
+class PrintModulePass : public ConcretePass {
   string Banner;          // String to print before each method
   ostream *Out;           // ostream to print on
   bool DeleteStream;      // Delete the ostream in our dtor?
index 30777b02df2cf967017de607845a822e8af1753f..04ae4686867dcb0ff31abf97ac195f6b905593ab 100644 (file)
@@ -52,7 +52,7 @@ static inline string GetFileNameRoot(const string &InputFilename) {
 // Native code generation for a specified target.
 //===---------------------------------------------------------------------===//
 
-class GenerateCodeForTarget : public ConcretePass<GenerateCodeForTarget> {
+class GenerateCodeForTarget : public ConcretePass {
   TargetMachine &Target;
 public:
   inline GenerateCodeForTarget(TargetMachine &T) : Target(T) {}
@@ -77,7 +77,7 @@ public:
 // Write assembly code to specified output stream
 //===---------------------------------------------------------------------===//
 
-class EmitAssembly : public ConcretePass<EmitAssembly> {
+class EmitAssembly : public ConcretePass {
   const TargetMachine &Target;   // Target to compile for
   ostream *Out;                  // Stream to print on
   bool DeleteStream;             // Delete stream in dtor?