summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/AMDGPUMachineFunction.cpp
diff options
context:
space:
mode:
authorVincent Lejeune <vljn@ovi.com>2013-04-01 21:47:53 +0000
committerVincent Lejeune <vljn@ovi.com>2013-04-01 21:47:53 +0000
commitace6f7351eb89f160623aa45af83af5db939d97b (patch)
tree21a623ccde5d55fce12246991343ea80df16444f /llvm/lib/Target/R600/AMDGPUMachineFunction.cpp
parentf43bc57b665f33759b78eeca5607d331f4429942 (diff)
downloadbcm5719-llvm-ace6f7351eb89f160623aa45af83af5db939d97b.tar.gz
bcm5719-llvm-ace6f7351eb89f160623aa45af83af5db939d97b.zip
R600/SI: Share code recording ShaderTypeAttribute between generations
llvm-svn: 178504
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUMachineFunction.cpp')
-rw-r--r--llvm/lib/Target/R600/AMDGPUMachineFunction.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUMachineFunction.cpp b/llvm/lib/Target/R600/AMDGPUMachineFunction.cpp
new file mode 100644
index 00000000000..0223ec8e4f3
--- /dev/null
+++ b/llvm/lib/Target/R600/AMDGPUMachineFunction.cpp
@@ -0,0 +1,22 @@
+#include "AMDGPUMachineFunction.h"
+#include "llvm/IR/Attributes.h"
+#include "llvm/IR/Function.h"
+
+namespace llvm {
+
+const char *AMDGPUMachineFunction::ShaderTypeAttribute = "ShaderType";
+
+AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) :
+ MachineFunctionInfo() {
+ AttributeSet Set = MF.getFunction()->getAttributes();
+ Attribute A = Set.getAttribute(AttributeSet::FunctionIndex,
+ ShaderTypeAttribute);
+
+ if (A.isStringAttribute()) {
+ StringRef Str = A.getValueAsString();
+ if (Str.getAsInteger(0, ShaderType))
+ llvm_unreachable("Can't parse shader type!");
+ }
+}
+
+}
OpenPOWER on IntegriCloud