diff options
Diffstat (limited to 'lib/Target/AArch64/AArch64InstructionSelector.h')
| -rw-r--r-- | lib/Target/AArch64/AArch64InstructionSelector.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64InstructionSelector.h b/lib/Target/AArch64/AArch64InstructionSelector.h new file mode 100644 index 000000000000..0d44e696ac20 --- /dev/null +++ b/lib/Target/AArch64/AArch64InstructionSelector.h @@ -0,0 +1,47 @@ +//===- AArch64InstructionSelector --------------------------------*- C++ -*-==// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// \file +/// This file declares the targeting of the InstructionSelector class for +/// AArch64. +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64INSTRUCTIONSELECTOR_H +#define LLVM_LIB_TARGET_AARCH64_AARCH64INSTRUCTIONSELECTOR_H + +#include "llvm/CodeGen/GlobalISel/InstructionSelector.h" + +namespace llvm { +class AArch64InstrInfo; +class AArch64RegisterBankInfo; +class AArch64RegisterInfo; +class AArch64Subtarget; +class AArch64TargetMachine; + +class AArch64InstructionSelector : public InstructionSelector { +public: + AArch64InstructionSelector(const AArch64TargetMachine &TM, + const AArch64Subtarget &STI, + const AArch64RegisterBankInfo &RBI); + + virtual bool select(MachineInstr &I) const override; + +private: + /// tblgen-erated 'select' implementation, used as the initial selector for + /// the patterns that don't require complex C++. + bool selectImpl(MachineInstr &I) const; + + const AArch64TargetMachine &TM; + const AArch64Subtarget &STI; + const AArch64InstrInfo &TII; + const AArch64RegisterInfo &TRI; + const AArch64RegisterBankInfo &RBI; +}; + +} // End llvm namespace. +#endif |
