LLVM API Documentation
00001 //===- IA64RegisterInfo.h - IA64 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 IA64 implementation of the TargetRegisterInfo class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef IA64REGISTERINFO_H 00015 #define IA64REGISTERINFO_H 00016 00017 #include "llvm/Target/TargetRegisterInfo.h" 00018 #include "IA64GenRegisterInfo.h.inc" 00019 00020 namespace llvm { 00021 00022 class TargetInstrInfo; 00023 00024 struct IA64RegisterInfo : public IA64GenRegisterInfo { 00025 const TargetInstrInfo &TII; 00026 00027 IA64RegisterInfo(const TargetInstrInfo &tii); 00028 00029 /// Code Generation virtual methods... 00030 const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const; 00031 00032 const TargetRegisterClass* const* getCalleeSavedRegClasses( 00033 const MachineFunction *MF = 0) const; 00034 00035 BitVector getReservedRegs(const MachineFunction &MF) const; 00036 00037 bool hasFP(const MachineFunction &MF) const; 00038 00039 void eliminateCallFramePseudoInstr(MachineFunction &MF, 00040 MachineBasicBlock &MBB, 00041 MachineBasicBlock::iterator MI) const; 00042 00043 void eliminateFrameIndex(MachineBasicBlock::iterator MI, 00044 int SPAdj, RegScavenger *RS = NULL) const; 00045 00046 void emitPrologue(MachineFunction &MF) const; 00047 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const; 00048 00049 // Debug information queries. 00050 unsigned getRARegister() const; 00051 unsigned getFrameRegister(MachineFunction &MF) const; 00052 00053 // Exception handling queries. 00054 unsigned getEHExceptionRegister() const; 00055 unsigned getEHHandlerRegister() const; 00056 00057 int getDwarfRegNum(unsigned RegNum, bool isEH) const; 00058 }; 00059 00060 } // End llvm namespace 00061 00062 #endif 00063
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.