1 //===- ARMInstructionSelector ------------------------------------*- C++ -*-==//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 /// This file declares the targeting of the InstructionSelector class for ARM.
11 //===----------------------------------------------------------------------===//
13 #ifndef LLVM_LIB_TARGET_ARM_ARMINSTRUCTIONSELECTOR_H
14 #define LLVM_LIB_TARGET_ARM_ARMINSTRUCTIONSELECTOR_H
16 #include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
19 class ARMBaseInstrInfo;
20 class ARMBaseRegisterInfo;
21 class ARMBaseTargetMachine;
22 class ARMRegisterBankInfo;
25 class ARMInstructionSelector : public InstructionSelector {
27 ARMInstructionSelector(const ARMSubtarget &STI,
28 const ARMRegisterBankInfo &RBI);
30 virtual bool select(MachineInstr &I) const override;
33 const ARMBaseInstrInfo &TII;
34 const ARMBaseRegisterInfo &TRI;
35 const ARMRegisterBankInfo &RBI;
38 } // End llvm namespace.