LLVM  4.0.0
ARMRegisterBankInfo.h
Go to the documentation of this file.
1 //===- ARMRegisterBankInfo ---------------------------------------*- 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 /// \file
10 /// This file declares the targeting of the RegisterBankInfo class for ARM.
11 /// \todo This should be generated by TableGen.
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_LIB_TARGET_ARM_ARMREGISTERBANKINFO_H
15 #define LLVM_LIB_TARGET_ARM_ARMREGISTERBANKINFO_H
16 
18 
19 namespace llvm {
20 
21 class TargetRegisterInfo;
22 
23 namespace ARM {
24 enum {
25  GPRRegBankID = 0, // General purpose registers
27 };
28 } // end namespace ARM
29 
30 /// This class provides the information for the target register banks.
31 class ARMRegisterBankInfo final : public RegisterBankInfo {
32 public:
34 
35  const RegisterBank &
36  getRegBankFromRegClass(const TargetRegisterClass &RC) const override;
37 
38  InstructionMapping getInstrMapping(const MachineInstr &MI) const override;
39 };
40 } // End llvm namespace.
41 #endif
Helper class that represents how the value of an instruction may be mapped and what is the related co...
Holds all the information related to register banks.
This class provides the information for the target register banks.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
ARMRegisterBankInfo(const TargetRegisterInfo &TRI)
This class implements the register bank concept.
Definition: RegisterBank.h:29
Representation of each machine instruction.
Definition: MachineInstr.h:52
const RegisterBank & getRegBankFromRegClass(const TargetRegisterClass &RC) const override
Get a register bank that covers RC.
InstructionMapping getInstrMapping(const MachineInstr &MI) const override
Get the mapping of the different operands of MI on the register bank.
IRTranslator LLVM IR MI