Don't use PassInfo* as a type identifier for passes. Instead, use the address of...
[oota-llvm.git] / include / llvm / CodeGen / CalcSpillWeights.h
1 //===---------------- lib/CodeGen/CalcSpillWeights.h ------------*- 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
11 #ifndef LLVM_CODEGEN_CALCSPILLWEIGHTS_H
12 #define LLVM_CODEGEN_CALCSPILLWEIGHTS_H
13
14 #include "llvm/CodeGen/MachineFunctionPass.h"
15
16 namespace llvm {
17
18   class LiveInterval;
19
20   /// CalculateSpillWeights - Compute spill weights for all virtual register
21   /// live intervals.
22   class CalculateSpillWeights : public MachineFunctionPass {
23   public:
24     static char ID;
25
26     CalculateSpillWeights() : MachineFunctionPass(ID) {}
27
28     virtual void getAnalysisUsage(AnalysisUsage &au) const;
29
30     virtual bool runOnMachineFunction(MachineFunction &fn);    
31
32   private:
33     /// Returns true if the given live interval is zero length.
34     bool isZeroLengthInterval(LiveInterval *li) const;
35   };
36
37 }
38
39 #endif // LLVM_CODEGEN_CALCSPILLWEIGHTS_H