LLVM API Documentation

MSP430RegisterInfo.h
Go to the documentation of this file.
00001 //===-- MSP430RegisterInfo.h - MSP430 Register Information Impl -*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file contains the MSP430 implementation of the MRegisterInfo class.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef LLVM_LIB_TARGET_MSP430_MSP430REGISTERINFO_H
00015 #define LLVM_LIB_TARGET_MSP430_MSP430REGISTERINFO_H
00016 
00017 #include "llvm/Target/TargetRegisterInfo.h"
00018 
00019 #define GET_REGINFO_HEADER
00020 #include "MSP430GenRegisterInfo.inc"
00021 
00022 namespace llvm {
00023 
00024 struct MSP430RegisterInfo : public MSP430GenRegisterInfo {
00025 public:
00026   MSP430RegisterInfo();
00027 
00028   /// Code Generation virtual methods...
00029   const MCPhysReg *
00030   getCalleeSavedRegs(const MachineFunction *MF = nullptr) const override;
00031 
00032   BitVector getReservedRegs(const MachineFunction &MF) const override;
00033   const TargetRegisterClass*
00034   getPointerRegClass(const MachineFunction &MF,
00035                      unsigned Kind = 0) const override;
00036 
00037   void eliminateFrameIndex(MachineBasicBlock::iterator II,
00038                            int SPAdj, unsigned FIOperandNum,
00039                            RegScavenger *RS = nullptr) const override;
00040 
00041   // Debug information queries.
00042   unsigned getFrameRegister(const MachineFunction &MF) const override;
00043 };
00044 
00045 } // end namespace llvm
00046 
00047 #endif