LLVM API Documentation
00001 //===-- PPC64TargetMachine.h - Define TargetMachine for PowerPC64 -*- C++ -*-=// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file declares the PowerPC specific subclass of TargetMachine. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef POWERPC64_TARGETMACHINE_H 00015 #define POWERPC64_TARGETMACHINE_H 00016 00017 #include "PowerPCTargetMachine.h" 00018 #include "PPC64InstrInfo.h" 00019 #include "llvm/PassManager.h" 00020 00021 namespace llvm { 00022 00023 class IntrinsicLowering; 00024 00025 class PPC64TargetMachine : public PowerPCTargetMachine { 00026 PPC64InstrInfo InstrInfo; 00027 00028 public: 00029 PPC64TargetMachine(const Module &M, IntrinsicLowering *IL); 00030 virtual const PPC64InstrInfo *getInstrInfo() const { return &InstrInfo; } 00031 virtual const MRegisterInfo *getRegisterInfo() const { 00032 return &InstrInfo.getRegisterInfo(); 00033 } 00034 00035 static unsigned getModuleMatchQuality(const Module &M); 00036 00037 bool addPassesToEmitMachineCode(FunctionPassManager &PM, 00038 MachineCodeEmitter &MCE); 00039 }; 00040 00041 } // end namespace llvm 00042 00043 #endif