1 //===- AMDILRegisterInfo.h - AMDIL Register Information Impl ----*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //==-----------------------------------------------------------------------===//
10 // This file contains the AMDIL implementation of the TargetRegisterInfo class.
12 //===----------------------------------------------------------------------===//
14 #ifndef AMDILREGISTERINFO_H_
15 #define AMDILREGISTERINFO_H_
17 #include "llvm/Target/TargetRegisterInfo.h"
19 #define GET_REGINFO_HEADER
20 #include "AMDILGenRegisterInfo.inc"
21 // See header file for explanation
26 class AMDILTargetMachine
;
27 class TargetInstrInfo
;
30 /// DWARFFlavour - Flavour of dwarf regnumbers
32 namespace DWARFFlavour
{
38 struct AMDILRegisterInfo
: public AMDILGenRegisterInfo
40 AMDILTargetMachine
&TM
;
41 const TargetInstrInfo
&TII
;
43 AMDILRegisterInfo(AMDILTargetMachine
&tm
, const TargetInstrInfo
&tii
);
44 /// Code Generation virtual methods...
45 const uint16_t * getCalleeSavedRegs(const MachineFunction
*MF
= 0) const;
47 const TargetRegisterClass
* const*
48 getCalleeSavedRegClasses(
49 const MachineFunction
*MF
= 0) const;
52 getReservedRegs(const MachineFunction
&MF
) const;
54 getAllocatableSet(const MachineFunction
&MF
,
55 const TargetRegisterClass
*RC
) const;
58 eliminateCallFramePseudoInstr(
60 MachineBasicBlock
&MBB
,
61 MachineBasicBlock::iterator I
) const;
63 eliminateFrameIndex(MachineBasicBlock::iterator II
,
64 int SPAdj
, RegScavenger
*RS
= NULL
) const;
67 processFunctionBeforeFrameFinalized(MachineFunction
&MF
) const;
69 // Debug information queries.
71 getRARegister() const;
74 getFrameRegister(const MachineFunction
&MF
) const;
76 // Exception handling queries.
78 getEHExceptionRegister() const;
80 getEHHandlerRegister() const;
85 mutable int64_t baseOffset
;
86 mutable int64_t nextFuncOffset
;
89 } // end namespace llvm
91 #endif // AMDILREGISTERINFO_H_