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 19 namespace llvm { 20 21 class AMDGPUMachineFunction : public MachineFunctionInfo { 22 virtual void anchor(); 23 unsigned ShaderType; 24 25 public: 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 getShaderType()36 unsigned getShaderType() const { 37 return ShaderType; 38 } 39 isKernel()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