1//===-- R600MachineFunctionInfo.h - R600 Machine Function Info ----*- 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/// \file 11//===----------------------------------------------------------------------===// 12 13#ifndef LLVM_LIB_TARGET_R600_AMDGPUMACHINEFUNCTION_H 14#define LLVM_LIB_TARGET_R600_AMDGPUMACHINEFUNCTION_H 15 16#include "llvm/CodeGen/MachineFunction.h" 17#include <map> 18 19namespace llvm { 20 21class AMDGPUMachineFunction : public MachineFunctionInfo { 22 virtual void anchor(); 23 unsigned ShaderType; 24 25public: 26 AMDGPUMachineFunction(const MachineFunction &MF); 27 /// A map to keep track of local memory objects and their offsets within 28 /// the local memory space. 29 std::map<const GlobalValue *, unsigned> LocalMemoryObjects; 30 /// Number of bytes in the LDS that are being used. 31 unsigned LDSSize; 32 33 /// Start of implicit kernel args 34 unsigned ABIArgOffset; 35 36 unsigned getShaderType() const { 37 return ShaderType; 38 } 39 40 bool isKernel() const { 41 // FIXME: Assume everything is a kernel until function calls are supported. 42 return true; 43 } 44 45 unsigned ScratchSize; 46 bool IsKernel; 47}; 48 49} 50#endif 51