PPC.h revision d1c4626e147b8c9ee6dfe8bbec05f3a2dc27af9d
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 *createPPC32ISelSimple(TargetMachine &TM); 31FunctionPass *createPPC32ISelPattern(TargetMachine &TM); 32FunctionPass *createPPC32ISelDag(TargetMachine &TM); 33FunctionPass *createDarwinAsmPrinter(std::ostream &OS, TargetMachine &TM); 34FunctionPass *createAIXAsmPrinter(std::ostream &OS, TargetMachine &TM); 35 36extern bool PICEnabled; 37extern PPCTargetEnum PPCTarget; 38} // end namespace llvm; 39 40// GCC #defines PPC on Linux but we use it as our namespace name 41#undef PPC 42 43// Defines symbolic names for PowerPC registers. This defines a mapping from 44// register name to register number. 45// 46#include "PowerPCGenRegisterNames.inc" 47 48// Defines symbolic names for the PowerPC instructions. 49// 50#include "PowerPCGenInstrNames.inc" 51 52#endif 53