-
Notifications
You must be signed in to change notification settings - Fork 170
/
Copy pathSystemThread.h
131 lines (105 loc) · 3.57 KB
/
SystemThread.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*========================== begin_copyright_notice ============================
Copyright (C) 2017-2021 Intel Corporation
SPDX-License-Identifier: MIT
============================= end_copyright_notice ===========================*/
#pragma once
#ifdef _MSC_VER
#pragma warning(disable: 4005)
#endif
#include "common/LLVMWarningsPush.hpp"
#include <llvm/Support/ScaledNumber.h>
#include <llvm/Bitcode/BitcodeReader.h>
#include <llvm/Bitcode/BitcodeWriter.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IRReader/IRReader.h>
#include <llvm/Support/Format.h>
#include <llvm/Support/MemoryBuffer.h>
#include <llvm/Support/SourceMgr.h>
#include "common/LLVMWarningsPop.hpp"
#include <vector>
#include <stdint.h>
#include "usc.h"
#include "AdaptorOCL/OCL/LoadBuffer.h"
#include "Compiler/CISACodeGen/Platform.hpp"
#include "common/debug/Debug.hpp"
#include "Probe/Assertion.h"
namespace SIP
{
enum SIP_ID {
GEN9_SIP_DEBUG = 0,
GEN9_SIP_CSR,
GEN9_SIP_CSR_DEBUG,
GEN10_SIP_DEBUG,
GEN10_SIP_CSR,
GEN10_SIP_CSR_DEBUG,
GEN9_SIP_DEBUG_BINDLESS,
GEN10_SIP_DEBUG_BINDLESS,
GEN9_BXT_SIP_CSR,
GEN9_SIP_CSR_DEBUG_LOCAL,
GEN9_GLV_SIP_CSR,
GEN11_SIP_CSR,
GEN11_SIP_CSR_DEBUG,
GEN11_SIP_CSR_DEBUG_BINDLESS,
GEN11_LKF_SIP_CSR,
GEN12_LP_CSR,
GEN12_LP_CSR_DEBUG,
GEN12_LP_CSR_DEBUG_BINDLESS,
XE_HP_CSR,
XE_HP_CSR_DEBUG,
XE_HP_CSR_DEBUG_BINDLESS,
XE_HPG_CSR_DEBUG,
XE_HPG_CSR_DEBUG_BINDLESS,
XE_HPC_CSR_DEBUG_BINDLESS,
XE2_CSR_DEBUG_BINDLESS,
XE2_CSR_DEBUG_BINDLESS_config128,
XE2_CSR_DEBUG_BINDLESS_config160,
XE3G_DEBUG_BINDLESS,
XE3_CSR_DEBUG_BINDLESS,
GEN_SIP_MAX_INDEX
};
enum WMTP_DATA_SIZE
{
XE2_CSR_DEBUG_BINDLESS_config128_WMTP_DATA_SIZE = 62923904,
XE2_CSR_DEBUG_BINDLESS_config160_WMTP_DATA_SIZE = 64244864,
XE3_CSR_DEBUG_BINDLESS_PTL_WMTP_DATA_SIZE = 77833344,
};
enum SLM_SIZE_SUPPORTED
{
SLM_ANY,
SLM_128 = 128,
SLM_160 = 160
};
class CSystemThread
{
public:
static bool CreateSystemThreadKernel(
const IGC::CPlatform &platform,
const USC::SYSTEM_THREAD_MODE mode,
USC::SSystemThreadKernelOutput* &pSystemThread,
bool bindlessmode = false);
static void DeleteSystemThreadKernel(
USC::SSystemThreadKernelOutput* &pSystemThread );
private:
CSystemThread( void );
};
class CGenSystemInstructionKernelProgram
{
public:
CGenSystemInstructionKernelProgram* Create(
const IGC::CPlatform &platform,
const USC::SYSTEM_THREAD_MODE mode,
const bool bindlessMode);
void Delete(CGenSystemInstructionKernelProgram* &pKernelProgram );
CGenSystemInstructionKernelProgram(const USC::SYSTEM_THREAD_MODE mode);
const unsigned int GetProgramSize() const { IGC_ASSERT(m_ProgramSize) ; return m_ProgramSize;}
const void * GetLinearAddress() const { IGC_ASSERT(m_LinearAddress); return m_LinearAddress;}
const unsigned int GetStateSaveHeaderSize() const { return m_StateSaveHeaderSize; }
const void * GetStateSaveHeaderAddress() const { return m_StateSaveHeaderAddress; }
protected:
unsigned int m_StateSaveHeaderSize;
void* m_StateSaveHeaderAddress;
unsigned int m_ProgramSize;
void* m_LinearAddress;
};
} // namespace IGC