mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-20 19:25:05 +00:00
ConcretePass should not be a templated class!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@838 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
25c1229930
commit
2db4b72017
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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?
|
||||
|
@ -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?
|
||||
|
Loading…
x
Reference in New Issue
Block a user