ARM.h revision 218893
1//===-- ARM.h - Top-level interface for ARM representation---- --*- 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// ARM back-end. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef TARGET_ARM_H 16#define TARGET_ARM_H 17 18#include "ARMBaseInfo.h" 19#include "llvm/Support/ErrorHandling.h" 20#include "llvm/Target/TargetMachine.h" 21#include <cassert> 22 23namespace llvm { 24 25class ARMBaseTargetMachine; 26class FunctionPass; 27class JITCodeEmitter; 28class formatted_raw_ostream; 29class MCCodeEmitter; 30class TargetAsmBackend; 31class MachineInstr; 32class ARMAsmPrinter; 33class MCInst; 34 35MCCodeEmitter *createARMMCCodeEmitter(const Target &, 36 TargetMachine &TM, 37 MCContext &Ctx); 38 39TargetAsmBackend *createARMAsmBackend(const Target &, const std::string &); 40 41FunctionPass *createARMISelDag(ARMBaseTargetMachine &TM, 42 CodeGenOpt::Level OptLevel); 43 44FunctionPass *createARMJITCodeEmitterPass(ARMBaseTargetMachine &TM, 45 JITCodeEmitter &JCE); 46 47FunctionPass *createARMLoadStoreOptimizationPass(bool PreAlloc = false); 48FunctionPass *createARMExpandPseudoPass(); 49FunctionPass *createARMGlobalMergePass(const TargetLowering* tli); 50FunctionPass *createARMConstantIslandPass(); 51FunctionPass *createNEONMoveFixPass(); 52FunctionPass *createMLxExpansionPass(); 53FunctionPass *createThumb2ITBlockPass(); 54FunctionPass *createThumb2SizeReductionPass(); 55 56extern Target TheARMTarget, TheThumbTarget; 57 58void LowerARMMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI, 59 ARMAsmPrinter &AP); 60 61} // end namespace llvm; 62 63#endif 64