1 //===-- PPC.h - Top-level interface for PowerPC Target ----------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file contains the entry points for global functions defined in the LLVM 11 // PowerPC back-end. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_TARGET_POWERPC_H 16 #define LLVM_TARGET_POWERPC_H 17 18 // GCC #defines PPC on Linux but we use it as our namespace name 19 #undef PPC 20 21 #include "llvm/Target/TargetMachine.h" 22 23 namespace llvm { 24 class PPCTargetMachine; 25 class FunctionPass; 26 class MachineCodeEmitter; 27 class ObjectCodeEmitter; 28 class formatted_raw_ostream; 29 30 FunctionPass *createPPCBranchSelectionPass(); 31 FunctionPass *createPPCISelDag(PPCTargetMachine &TM); 32 FunctionPass *createPPCCodeEmitterPass(PPCTargetMachine &TM, 33 MachineCodeEmitter &MCE); 34 FunctionPass *createPPCJITCodeEmitterPass(PPCTargetMachine &TM, 35 JITCodeEmitter &MCE); 36 FunctionPass *createPPCObjectCodeEmitterPass(PPCTargetMachine &TM, 37 ObjectCodeEmitter &OCE); 38 39 extern Target ThePPC32Target; 40 extern Target ThePPC64Target; 41 42 } // end namespace llvm; 43 44 // Defines symbolic names for PowerPC registers. This defines a mapping from 45 // register name to register number. 46 // 47 #include "PPCGenRegisterNames.inc" 48 49 // Defines symbolic names for the PowerPC instructions. 50 // 51 #include "PPCGenInstrNames.inc" 52 53 #endif 54