1284677Sdim//===-- R600MachineFunctionInfo.h - R600 Machine Function Info ----*- C++ -*-=// 2284677Sdim// 3284677Sdim// The LLVM Compiler Infrastructure 4284677Sdim// 5284677Sdim// This file is distributed under the University of Illinois Open Source 6284677Sdim// License. See LICENSE.TXT for details. 7284677Sdim// 8284677Sdim//===----------------------------------------------------------------------===// 9284677Sdim// 10284677Sdim/// \file 11284677Sdim//===----------------------------------------------------------------------===// 12284677Sdim 13284677Sdim#ifndef LLVM_LIB_TARGET_R600_AMDGPUMACHINEFUNCTION_H 14284677Sdim#define LLVM_LIB_TARGET_R600_AMDGPUMACHINEFUNCTION_H 15284677Sdim 16284677Sdim#include "llvm/CodeGen/MachineFunction.h" 17284677Sdim#include <map> 18284677Sdim 19284677Sdimnamespace llvm { 20284677Sdim 21284677Sdimclass AMDGPUMachineFunction : public MachineFunctionInfo { 22284677Sdim virtual void anchor(); 23284677Sdim unsigned ShaderType; 24284677Sdim 25284677Sdimpublic: 26284677Sdim AMDGPUMachineFunction(const MachineFunction &MF); 27284677Sdim /// A map to keep track of local memory objects and their offsets within 28284677Sdim /// the local memory space. 29284677Sdim std::map<const GlobalValue *, unsigned> LocalMemoryObjects; 30284677Sdim /// Number of bytes in the LDS that are being used. 31284677Sdim unsigned LDSSize; 32284677Sdim 33284677Sdim /// Start of implicit kernel args 34284677Sdim unsigned ABIArgOffset; 35284677Sdim 36284677Sdim unsigned getShaderType() const { 37284677Sdim return ShaderType; 38284677Sdim } 39284677Sdim 40296417Sdim bool isKernel() const { 41296417Sdim // FIXME: Assume everything is a kernel until function calls are supported. 42296417Sdim return true; 43296417Sdim } 44296417Sdim 45284677Sdim unsigned ScratchSize; 46284677Sdim bool IsKernel; 47284677Sdim}; 48284677Sdim 49285181Sdim} 50284677Sdim#endif 51