Add getSelect helper function
[oota-llvm.git] / include / llvm / CodeGen / MachineFunctionAnalysis.h
index 5f1ff56af941cd522134cc689f3f677ac427d43e..112f07ea50d72365360558803ae001d64ef85753 100644 (file)
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CODEGEN_MACHINE_FUNCTION_ANALYSIS_H
-#define LLVM_CODEGEN_MACHINE_FUNCTION_ANALYSIS_H
+#ifndef LLVM_CODEGEN_MACHINEFUNCTIONANALYSIS_H
+#define LLVM_CODEGEN_MACHINEFUNCTIONANALYSIS_H
 
 #include "llvm/Pass.h"
-#include "llvm/Target/TargetMachine.h"
 
 namespace llvm {
 
 class MachineFunction;
+class TargetMachine;
 
 /// MachineFunctionAnalysis - This class is a Pass that manages a
 /// MachineFunction object.
 struct MachineFunctionAnalysis : public FunctionPass {
 private:
   const TargetMachine &TM;
-  CodeGenOpt::Level OptLevel;
   MachineFunction *MF;
-
+  unsigned NextFnNum;
 public:
   static char ID;
-  explicit MachineFunctionAnalysis(TargetMachine &tm,
-                                   CodeGenOpt::Level OL = CodeGenOpt::Default);
-
+  explicit MachineFunctionAnalysis(const TargetMachine &tm);
+  ~MachineFunctionAnalysis();
 
   MachineFunction &getMF() const { return *MF; }
-  CodeGenOpt::Level getOptLevel() const { return OptLevel; }
+  
+  virtual const char* getPassName() const {
+    return "Machine Function Analysis";
+  }
 
 private:
+  virtual bool doInitialization(Module &M);
   virtual bool runOnFunction(Function &F);
   virtual void releaseMemory();
   virtual void getAnalysisUsage(AnalysisUsage &AU) const;