1 #include "AMDGPUMachineFunction.h" 2 #include "AMDGPU.h" 3 #include "llvm/IR/Attributes.h" 4 #include "llvm/IR/Function.h" 5 using namespace llvm; 6 7 static const char *const ShaderTypeAttribute = "ShaderType"; 8 9 // Pin the vtable to this file. 10 void AMDGPUMachineFunction::anchor() {} 11 12 AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) : 13 MachineFunctionInfo(), 14 ShaderType(ShaderType::COMPUTE), 15 LDSSize(0), 16 ABIArgOffset(0), 17 ScratchSize(0), 18 IsKernel(true) { 19 Attribute A = MF.getFunction()->getFnAttribute(ShaderTypeAttribute); 20 21 if (A.isStringAttribute()) { 22 StringRef Str = A.getValueAsString(); 23 if (Str.getAsInteger(0, ShaderType)) 24 llvm_unreachable("Can't parse shader type!"); 25 } 26 } 27