aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
diff options
context:
space:
mode:
authorNikolay Haustov <Nikolay.Haustov@amd.com>2016-03-02 10:36:25 +0000
committerNikolay Haustov <Nikolay.Haustov@amd.com>2016-03-02 10:36:25 +0000
commit6c8c74969a152a62ffce0f83e3a45ea54b4655b4 (patch)
tree067e480a344191a3eaeb4cfeddd7065190c2a44d /llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
parent2eed1218e501354956fe60a060ea0cfe0b3aead0 (diff)
downloadllvm-6c8c74969a152a62ffce0f83e3a45ea54b4655b4.zip
llvm-6c8c74969a152a62ffce0f83e3a45ea54b4655b4.tar.gz
llvm-6c8c74969a152a62ffce0f83e3a45ea54b4655b4.tar.bz2
[AMDGPU] table-driven parser/printer for amd_kernel_code_t structure fields
This is going to be used in .hsatext disassembler and can be used in current assembler parser (lit tests passed on parsing). Code using this helpers isn't included in this patch. Benefits: unified approach fast field name lookup on parsing Later I would like to enhance some of the field naming/syntax using this code. Patch by: Valery Pykhtin Differential Revision: http://reviews.llvm.org/D17150 llvm-svn: 262473
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h')
-rw-r--r--llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
new file mode 100644
index 0000000..b053e83
--- /dev/null
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
@@ -0,0 +1,38 @@
+//===- AMDGPUKernelCodeTUtils.h - helpers for amd_kernel_code_t *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file AMDKernelCodeTUtils.h
+//===----------------------------------------------------------------------===//
+
+#ifndef AMDKERNELCODETUTILS_H
+#define AMDKERNELCODETUTILS_H
+
+typedef struct amd_kernel_code_s amd_kernel_code_t;
+
+namespace llvm {
+
+class MCAsmLexer;
+class raw_ostream;
+class StringRef;
+
+void printAmdKernelCodeField(const amd_kernel_code_t &C,
+ int FldIndex,
+ raw_ostream &OS);
+
+void dumpAmdKernelCode(const amd_kernel_code_t *C,
+ raw_ostream &OS,
+ const char *tab);
+
+bool parseAmdKernelCodeField(StringRef ID,
+ MCAsmLexer &Lexer,
+ amd_kernel_code_t &C,
+ raw_ostream &Err);
+
+}
+
+#endif // AMDKERNELCODETUTILS_H