Line data Source code
1 : //===- ARMInstructionSelector -----------------------------------*- 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 : /// \file
11 : /// This file declares the targeting of the InstructionSelector class for ARM.
12 : //
13 : //===----------------------------------------------------------------------===//
14 :
15 : #ifndef LLVM_LIB_TARGET_ARM_ARMINSTRUCTIONSELECTOR_H
16 : #define LLVM_LIB_TARGET_ARM_ARMINSTRUCTIONSELECTOR_H
17 :
18 : #include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
19 :
20 : namespace llvm {
21 :
22 : class ARMBaseInstrInfo;
23 : class ARMBaseRegisterInfo;
24 : class ARMRegisterBankInfo;
25 : class ARMSubtarget;
26 :
27 2555 : class ARMInstructionSelector : public InstructionSelector {
28 : public:
29 : ARMInstructionSelector(const ARMSubtarget &STI,
30 : const ARMRegisterBankInfo &RBI);
31 :
32 : bool select(MachineInstr &I) const override;
33 :
34 : private:
35 : const ARMBaseInstrInfo &TII;
36 : const ARMBaseRegisterInfo &TRI;
37 : const ARMRegisterBankInfo &RBI;
38 : };
39 :
40 : } // end namespace llvm
41 :
42 : #endif // LLVM_LIB_TARGET_ARM_ARMINSTRUCTIONSELECTOR_H
|