| //===-- 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 "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/CodeGen/Analysis.h" |
| #include "llvm/CodeGen/FastISel.h" |
| #include "llvm/CodeGen/FunctionLoweringInfo.h" |
| #include "llvm/CodeGen/MachineConstantPool.h" |
| #include "llvm/CodeGen/MachineFrameInfo.h" |
| #include "llvm/CodeGen/MachineRegisterInfo.h" |
| #include "llvm/Support/CallSite.h" |
| #include "llvm/Support/ErrorHandling.h" |
| #include "llvm/Support/GetElementPtrTypeIterator.h" |
| #include "llvm/Target/TargetOptions.h" |
| using namespace llvm; |
| |
| namespace { |
| |
| class ARMFastISel : public FastISel { |
| |
| /// Subtarget - Keep a pointer to the ARMSubtarget around so that we can |
| /// make the right decision when generating code for different targets. |
| const ARMSubtarget *Subtarget; |
| |
| public: |
| explicit ARMFastISel(FunctionLoweringInfo &funcInfo) : FastISel(funcInfo) { |
| Subtarget = &TM.getSubtarget<ARMSubtarget>(); |
| } |
| |
| virtual bool TargetSelectInstruction(const Instruction *I); |
| |
| #include "ARMGenFastISel.inc" |
| |
| }; |
| |
| } // end anonymous namespace |
| |
| // #include "ARMGenCallingConv.inc" |
| |
| bool ARMFastISel::TargetSelectInstruction(const Instruction *I) { |
| switch (I->getOpcode()) { |
| default: break; |
| } |
| return false; |
| } |
| |
| namespace llvm { |
| llvm::FastISel *ARM::createFastISel(FunctionLoweringInfo &funcInfo) { |
| return new ARMFastISel(funcInfo); |
| } |
| } |