[AMDGPU] Restructure code object metadata creation
- Rename runtime metadata -> code object metadata
- Make metadata not flow
- Switch enums to use ScalarEnumerationTraits
- Cleanup and move AMDGPUCodeObjectMetadata.h to AMDGPU/MCTargetDesc
- Introduce in-memory representation for attributes
- Code object metadata streamer
- Create metadata for isa and printf during EmitStartOfAsmFile
- Create metadata for kernel during EmitFunctionBodyStart
- Finalize and emit metadata to .note during EmitEndOfAsmFile
- Other minor improvements/bug fixes
Differential Revision: https://reviews.llvm.org/D29948
llvm-svn: 298552
diff --git a/llvm/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-1.ll b/llvm/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-1.ll
new file mode 100644
index 0000000..53ffb76
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/code-object-metadata-invalid-ocl-version-1.ll
@@ -0,0 +1,21 @@
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata | FileCheck %s
+
+; Make sure llc does not crash for invalid opencl version metadata.
+
+; CHECK: ---
+; CHECK: Version: [ 1, 0 ]
+; CHECK: Isa:
+; CHECK: WavefrontSize: 64
+; CHECK: LocalMemorySize: 65536
+; CHECK: EUsPerCU: 4
+; CHECK: MaxWavesPerEU: 10
+; CHECK: MaxFlatWorkGroupSize: 2048
+; CHECK: SGPRAllocGranule: 8
+; CHECK: TotalNumSGPRs: 512
+; CHECK: AddressableNumSGPRs: 104
+; CHECK: VGPRAllocGranule: 4
+; CHECK: TotalNumVGPRs: 256
+; CHECK: AddressableNumVGPRs: 256
+; CHECK: ...
+
+!opencl.ocl.version = !{}