All PPC instructions are now auto-printed
[oota-llvm.git] / lib / Target / PowerPC / PPCTargetMachine.h
1 //===-- PPC32TargetMachine.h - Define TargetMachine for PowerPC -*- 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 POWERPC32_TARGETMACHINE_H
15 #define POWERPC32_TARGETMACHINE_H
16
17 #include "PowerPCTargetMachine.h"
18 #include "PPC32InstrInfo.h"
19 #include "llvm/PassManager.h"
20
21 namespace llvm {
22
23 class IntrinsicLowering;
24
25 class PPC32TargetMachine : public PowerPCTargetMachine {
26   PPC32InstrInfo InstrInfo;
27
28 public:
29   PPC32TargetMachine(const Module &M, IntrinsicLowering *IL);
30   virtual const PPC32InstrInfo   *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