~ubuntu-branches/ubuntu/maverick/clamav/maverick-updates

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/lib/CodeGen/PHIElimination.h

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-12-17 12:30:20 UTC
  • mfrom: (97.1.1 maverick-proposed)
  • Revision ID: james.westby@ubuntu.com-20101217123020-o02fhyzykv5z98ri
Tags: 0.96.5+dfsg-1ubuntu1.10.10.1
* Microversion update for Maverick (LP: #691414)
  - Improved database login times
  - Expanded use of new bytecode signatures
  - Other bugfixes/improvements

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
#include "llvm/ADT/DenseMap.h"
14
14
#include "llvm/ADT/SmallSet.h"
15
15
#include "llvm/ADT/SmallPtrSet.h"
 
16
#include "llvm/CodeGen/MachineBasicBlock.h"
16
17
#include "llvm/CodeGen/MachineFunctionPass.h"
17
 
#include "llvm/CodeGen/MachineRegisterInfo.h"
18
18
 
19
19
namespace llvm {
20
20
  class LiveVariables;
 
21
  class MachineRegisterInfo;
 
22
  class MachineLoopInfo;
21
23
  
22
24
  /// Lower PHI instructions to copies.  
23
25
  class PHIElimination : public MachineFunctionPass {
24
 
    MachineRegisterInfo  *MRI; // Machine register information
 
26
    MachineRegisterInfo *MRI; // Machine register information
25
27
 
26
28
  public:
27
29
    static char ID; // Pass identification, replacement for typeid
28
 
    PHIElimination() : MachineFunctionPass(&ID) {}
 
30
    PHIElimination() : MachineFunctionPass(ID) {}
29
31
 
30
32
    virtual bool runOnMachineFunction(MachineFunction &Fn);
31
33
    
49
51
 
50
52
    /// Split critical edges where necessary for good coalescer performance.
51
53
    bool SplitPHIEdges(MachineFunction &MF, MachineBasicBlock &MBB,
52
 
                       LiveVariables &LV);
 
54
                       LiveVariables &LV, MachineLoopInfo *MLI);
53
55
 
54
56
    /// SplitCriticalEdge - Split a critical edge from A to B by
55
57
    /// inserting a new MBB. Update branches in A and PHI instructions