blob: 7c595d5a83e43d612e4bb2c2236c0c9da77a8483 [file] [log] [blame]
Vincent Lejeuneace6f732013-04-01 21:47:53 +00001#include "AMDGPUMachineFunction.h"
Tom Stellard456adc62013-04-26 18:32:24 +00002#include "AMDGPU.h"
Vincent Lejeuneace6f732013-04-01 21:47:53 +00003#include "llvm/IR/Attributes.h"
4#include "llvm/IR/Function.h"
Craig Topper8fc40962013-07-17 00:31:35 +00005using namespace llvm;
Vincent Lejeuneace6f732013-04-01 21:47:53 +00006
Craig Topper8fc40962013-07-17 00:31:35 +00007static const char *const ShaderTypeAttribute = "ShaderType";
Vincent Lejeuneace6f732013-04-01 21:47:53 +00008
Juergen Ributzkad12ccbd2013-11-19 00:57:56 +00009// Pin the vtable to this file.
10void AMDGPUMachineFunction::anchor() {}
11
Vincent Lejeuneace6f732013-04-01 21:47:53 +000012AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) :
Matt Arsenault762af962014-07-13 03:06:39 +000013 MachineFunctionInfo(),
14 ShaderType(ShaderType::COMPUTE),
Matt Arsenault3f981402014-09-15 15:41:53 +000015 LDSSize(0),
Tom Stellarde9285332015-12-02 18:35:23 +000016 ABIArgOffset(0),
Matt Arsenault3f981402014-09-15 15:41:53 +000017 ScratchSize(0),
18 IsKernel(true) {
Duncan P. N. Exon Smith8480c872015-02-14 02:45:45 +000019 Attribute A = MF.getFunction()->getFnAttribute(ShaderTypeAttribute);
Vincent Lejeuneace6f732013-04-01 21:47:53 +000020
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}