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 "MCTargetDesc/ARMBaseInfo.h" 19#include "MCTargetDesc/ARMMCTargetDesc.h" 20#include "llvm/Support/DataTypes.h" 21#include "llvm/Target/TargetMachine.h" 22 23namespace llvm { 24 25class ARMAsmPrinter; 26class ARMBaseTargetMachine; 27class FunctionPass; 28class JITCodeEmitter; 29class MachineInstr; 30class MCInst; 31 32FunctionPass *createARMISelDag(ARMBaseTargetMachine &TM, 33 CodeGenOpt::Level OptLevel); 34 35FunctionPass *createARMJITCodeEmitterPass(ARMBaseTargetMachine &TM, 36 JITCodeEmitter &JCE); 37 38FunctionPass *createARMLoadStoreOptimizationPass(bool PreAlloc = false); 39FunctionPass *createARMExpandPseudoPass(); 40FunctionPass *createARMGlobalMergePass(const TargetLowering* tli); 41FunctionPass *createARMConstantIslandPass(); 42FunctionPass *createMLxExpansionPass(); 43FunctionPass *createThumb2ITBlockPass(); 44FunctionPass *createThumb2SizeReductionPass(); 45 46void LowerARMMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI, 47 ARMAsmPrinter &AP); 48 49} // end namespace llvm; 50 51#endif 52