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 unsigned ScratchSize; 41 bool IsKernel; 42}; 43 44} 45#endif 46