PPC.h revision 73bfa7152481620d60bf63d5397dfe35bbc9c098
1//===-- PowerPC.h - Top-level interface for PowerPC representation -*- 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 contains the entry points for global functions defined in the LLVM 11// PowerPC back-end. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef TARGET_POWERPC_H 16#define TARGET_POWERPC_H 17 18#include <iosfwd> 19 20namespace llvm { 21 22class FunctionPass; 23class TargetMachine; 24 25enum PPCTargetEnum { 26 TargetDefault, TargetAIX, TargetDarwin 27}; 28 29FunctionPass *createPPCBranchSelectionPass(); 30FunctionPass *createPPC32ISelPattern(TargetMachine &TM); 31FunctionPass *createPPC32ISelDag(TargetMachine &TM); 32FunctionPass *createDarwinAsmPrinter(std::ostream &OS, TargetMachine &TM); 33FunctionPass *createAIXAsmPrinter(std::ostream &OS, TargetMachine &TM); 34 35extern bool PICEnabled; 36extern PPCTargetEnum PPCTarget; 37} // end namespace llvm; 38 39// GCC #defines PPC on Linux but we use it as our namespace name 40#undef PPC 41 42// Defines symbolic names for PowerPC registers. This defines a mapping from 43// register name to register number. 44// 45#include "PowerPCGenRegisterNames.inc" 46 47// Defines symbolic names for the PowerPC instructions. 48// 49#include "PowerPCGenInstrNames.inc" 50 51#endif 52