1 //===-- PPC32TargetMachine.h - Define TargetMachine for PowerPC -*- C++ -*-=//
3 // The LLVM Compiler Infrastructure
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.
8 //===----------------------------------------------------------------------===//
10 // This file declares the PowerPC specific subclass of TargetMachine.
12 //===----------------------------------------------------------------------===//
14 #ifndef POWERPC32_TARGETMACHINE_H
15 #define POWERPC32_TARGETMACHINE_H
17 #include "PowerPCTargetMachine.h"
18 #include "PPC32JITInfo.h"
19 #include "PPC32InstrInfo.h"
20 #include "llvm/PassManager.h"
24 class IntrinsicLowering;
26 class PPC32TargetMachine : public PowerPCTargetMachine {
27 PPC32InstrInfo InstrInfo;
31 PPC32TargetMachine(const Module &M, IntrinsicLowering *IL);
32 virtual const PPC32InstrInfo *getInstrInfo() const { return &InstrInfo; }
33 virtual const MRegisterInfo *getRegisterInfo() const {
34 return &InstrInfo.getRegisterInfo();
37 virtual TargetJITInfo *getJITInfo() {
41 static unsigned getJITMatchQuality();
43 static unsigned getModuleMatchQuality(const Module &M);
45 bool addPassesToEmitMachineCode(FunctionPassManager &PM,
46 MachineCodeEmitter &MCE);
49 } // end namespace llvm