Clone of mesa.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

AMDILRegisterInfo.h 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //===- AMDILRegisterInfo.h - AMDIL Register Information Impl ----*- 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. //
  10. // This file contains the AMDIL implementation of the TargetRegisterInfo class.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #ifndef AMDILREGISTERINFO_H_
  14. #define AMDILREGISTERINFO_H_
  15. #include "llvm/Target/TargetRegisterInfo.h"
  16. #define GET_REGINFO_HEADER
  17. #include "AMDILGenRegisterInfo.inc"
  18. // See header file for explanation
  19. namespace llvm
  20. {
  21. class AMDILTargetMachine;
  22. class TargetInstrInfo;
  23. class Type;
  24. /// DWARFFlavour - Flavour of dwarf regnumbers
  25. ///
  26. namespace DWARFFlavour {
  27. enum {
  28. AMDIL_Generic = 0
  29. };
  30. }
  31. struct AMDILRegisterInfo : public AMDILGenRegisterInfo
  32. {
  33. AMDILTargetMachine &TM;
  34. const TargetInstrInfo &TII;
  35. AMDILRegisterInfo(AMDILTargetMachine &tm, const TargetInstrInfo &tii);
  36. /// Code Generation virtual methods...
  37. const uint16_t * getCalleeSavedRegs(const MachineFunction *MF = 0) const;
  38. const TargetRegisterClass* const*
  39. getCalleeSavedRegClasses(
  40. const MachineFunction *MF = 0) const;
  41. BitVector
  42. getReservedRegs(const MachineFunction &MF) const;
  43. BitVector
  44. getAllocatableSet(const MachineFunction &MF,
  45. const TargetRegisterClass *RC) const;
  46. void
  47. eliminateCallFramePseudoInstr(
  48. MachineFunction &MF,
  49. MachineBasicBlock &MBB,
  50. MachineBasicBlock::iterator I) const;
  51. void
  52. eliminateFrameIndex(MachineBasicBlock::iterator II,
  53. int SPAdj, RegScavenger *RS = NULL) const;
  54. void
  55. processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
  56. // Debug information queries.
  57. unsigned int
  58. getRARegister() const;
  59. unsigned int
  60. getFrameRegister(const MachineFunction &MF) const;
  61. // Exception handling queries.
  62. unsigned int
  63. getEHExceptionRegister() const;
  64. unsigned int
  65. getEHHandlerRegister() const;
  66. int64_t
  67. getStackSize() const;
  68. private:
  69. mutable int64_t baseOffset;
  70. mutable int64_t nextFuncOffset;
  71. };
  72. } // end namespace llvm
  73. #endif // AMDILREGISTERINFO_H_