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. anchor()10 void AMDGPUMachineFunction::anchor() {} 11 AMDGPUMachineFunction(const MachineFunction & MF)12 AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) : 13 MachineFunctionInfo() { 14 ShaderType = ShaderType::COMPUTE; 15 LDSSize = 0; 16 AttributeSet Set = MF.getFunction()->getAttributes(); 17 Attribute A = Set.getAttribute(AttributeSet::FunctionIndex, 18 ShaderTypeAttribute); 19 20 if (A.isStringAttribute()) { 21 StringRef Str = A.getValueAsString(); 22 if (Str.getAsInteger(0, ShaderType)) 23 llvm_unreachable("Can't parse shader type!"); 24 } 25 } 26