~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//===-- MachineFunctionAnalysis.h - Owner of MachineFunctions ----*-C++ -*-===//
2
 
//
3
 
//                     The LLVM Compiler Infrastructure
4
 
//
5
 
// This file is distributed under the University of Illinois Open Source
6
 
// License. See LICENSE.TXT for details.
7
 
//
8
 
//===----------------------------------------------------------------------===//
9
 
//
10
 
// This file declares the MachineFunctionAnalysis class.
11
 
//
12
 
//===----------------------------------------------------------------------===//
13
 
 
14
 
#ifndef LLVM_CODEGEN_MACHINE_FUNCTION_ANALYSIS_H
15
 
#define LLVM_CODEGEN_MACHINE_FUNCTION_ANALYSIS_H
16
 
 
17
 
#include "llvm/Pass.h"
18
 
#include "llvm/Target/TargetMachine.h"
19
 
 
20
 
namespace llvm {
21
 
 
22
 
class MachineFunction;
23
 
 
24
 
/// MachineFunctionAnalysis - This class is a Pass that manages a
25
 
/// MachineFunction object.
26
 
struct MachineFunctionAnalysis : public FunctionPass {
27
 
private:
28
 
  const TargetMachine &TM;
29
 
  CodeGenOpt::Level OptLevel;
30
 
  MachineFunction *MF;
31
 
  unsigned NextFnNum;
32
 
public:
33
 
  static char ID;
34
 
  explicit MachineFunctionAnalysis(const TargetMachine &tm,
35
 
                                   CodeGenOpt::Level OL = CodeGenOpt::Default);
36
 
  ~MachineFunctionAnalysis();
37
 
 
38
 
  MachineFunction &getMF() const { return *MF; }
39
 
  CodeGenOpt::Level getOptLevel() const { return OptLevel; }
40
 
 
41
 
private:
42
 
  virtual bool doInitialization(Module &M);
43
 
  virtual bool runOnFunction(Function &F);
44
 
  virtual void releaseMemory();
45
 
  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
46
 
};
47
 
 
48
 
} // End llvm namespace
49
 
 
50
 
#endif