Fix bug in PhyRegAlloc::setCallInterferences() handling call through a
[oota-llvm.git] / lib / Target / PowerPC / PPC64TargetMachine.h
1 //===-- PPC64TargetMachine.h - Define TargetMachine for PowerPC64 -*- C++ -*-=//
2 // 
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9 // 
10 // This file declares the PowerPC specific subclass of TargetMachine.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef POWERPC64_TARGETMACHINE_H
15 #define POWERPC64_TARGETMACHINE_H
16
17 #include "PowerPCTargetMachine.h"
18 #include "PPC64InstrInfo.h"
19 #include "llvm/PassManager.h"
20
21 namespace llvm {
22
23 class IntrinsicLowering;
24
25 class PPC64TargetMachine : public PowerPCTargetMachine {
26   PPC64InstrInfo InstrInfo;
27
28 public:
29   PPC64TargetMachine(const Module &M, IntrinsicLowering *IL);
30   virtual const PPC64InstrInfo   *getInstrInfo() const { return &InstrInfo; }
31   virtual const MRegisterInfo *getRegisterInfo() const {
32     return &InstrInfo.getRegisterInfo();
33   }
34
35   static unsigned getModuleMatchQuality(const Module &M);
36
37   bool addPassesToEmitMachineCode(FunctionPassManager &PM,
38                                   MachineCodeEmitter &MCE);
39 };
40
41 } // end namespace llvm
42
43 #endif