1f903da7335433ae243cf7ff59662be1a03ee9a14Tom Stellard//===-- AMDGPURegisterInfo.cpp - AMDGPU Register Information -------------===// 2a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// 3a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// The LLVM Compiler Infrastructure 4a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// 5a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// This file is distributed under the University of Illinois Open Source 6a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// License. See LICENSE.TXT for details. 7a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// 8a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//===----------------------------------------------------------------------===// 9a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// 10f903da7335433ae243cf7ff59662be1a03ee9a14Tom Stellard// Parent TargetRegisterInfo class common to all hw codegen targets. 11a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard// 12a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard//===----------------------------------------------------------------------===// 13a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 14a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDGPURegisterInfo.h" 15a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard#include "AMDGPUTargetMachine.h" 16a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 17a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellardusing namespace llvm; 18a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard 193a0187b1b53eca3143286a5ae7917cd71117b902Tom StellardAMDGPURegisterInfo::AMDGPURegisterInfo(TargetMachine &tm, 20a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard const TargetInstrInfo &tii) 213a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard: AMDGPUGenRegisterInfo(0), 22a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard TM(tm), 23a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard TII(tii) 24a75c6163e605f35b14f26930dd9227e4f337ec9eTom Stellard { } 253a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 263a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard//===----------------------------------------------------------------------===// 273a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard// Function handling callbacks - Functions are a seldom used feature of GPUS, so 283a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard// they are not supported at this time. 293a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard//===----------------------------------------------------------------------===// 303a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 313a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardconst uint16_t AMDGPURegisterInfo::CalleeSavedReg = AMDGPU::NoRegister; 323a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 333a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardconst uint16_t* AMDGPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) 343a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard const { 353a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard return &CalleeSavedReg; 363a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard} 373a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 383a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardvoid AMDGPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI, 393a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard int SPAdj, 403a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard RegScavenger *RS) const { 413a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard assert(!"Subroutines not supported yet"); 423a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard} 433a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 443a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellardunsigned AMDGPURegisterInfo::getFrameRegister(const MachineFunction &MF) const { 453a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard assert(!"Subroutines not supported yet"); 463a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard return 0; 473a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard} 483a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard 493a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard#define GET_REGINFO_TARGET_DESC 503a0187b1b53eca3143286a5ae7917cd71117b902Tom Stellard#include "AMDGPUGenRegisterInfo.inc" 51