//===-- ARMFastISel.cpp - ARM FastISel implementation ---------------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file defines the ARM-specific support for the FastISel class. Some// of the target-specific code is generated by tablegen in the file// ARMGenFastISel.inc, which is #included here.////===----------------------------------------------------------------------===//#include"ARM.h"#include"ARMBaseInstrInfo.h"#include"ARMCallingConv.h"#include"ARMRegisterInfo.h"#include"ARMTargetMachine.h"#include"ARMSubtarget.h"#include"llvm/CallingConv.h"#include"llvm/DerivedTypes.h"#include"llvm/GlobalVariable.h"#include"llvm/Instructions.h"#include"llvm/IntrinsicInst.h"#include"llvm/Module.h"#include"llvm/CodeGen/Analysis.h"#include"llvm/CodeGen/FastISel.h"#include"llvm/CodeGen/FunctionLoweringInfo.h"#include"llvm/CodeGen/MachineInstrBuilder.h"#include"llvm/CodeGen/MachineModuleInfo.h"#include"llvm/CodeGen/MachineConstantPool.h"#include"llvm/CodeGen/MachineFrameInfo.h"#include"llvm/CodeGen/MachineRegisterInfo.h"#include"llvm/Support/CallSite.h"#include"llvm/Support/CommandLine.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/GetElementPtrTypeIterator.h"#include"llvm/Target/TargetData.h"#include"llvm/Target/TargetInstrInfo.h"#include"llvm/Target/TargetLowering.h"#include"llvm/Target/TargetMachine.h"#include"llvm/Target/TargetOptions.h"usingnamespacellvm;staticcl::opt<bool>EnableARMFastISel("arm-fast-isel",cl::desc("Turn on experimental ARM fast-isel support"),cl::init(false),cl::Hidden);namespace{classARMFastISel:publicFastISel{/// Subtarget - Keep a pointer to the ARMSubtarget around so that we can/// make the right decision when generating code for different targets.