Skip to content

Commit 218b8c7

Browse files
zuban32sys_zuul
authored andcommitted
Generate relocation and symbol tables for CM
Change-Id: Ib5aca1c0f8f31eea268b66d230842ca2c460d002
1 parent bd171d2 commit 218b8c7

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

IGC/AdaptorOCL/cmc.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,26 @@ static void generatePatchTokens_v2(const cmc_kernel_info_v2 *info, CMKernel& ker
424424
int32_t ConstantBufferLength = maxArgEnd - constantPayloadStart;
425425
ConstantBufferLength = iSTD::Align(ConstantBufferLength, info->GRFByteSize) / info->GRFByteSize;
426426
kernel.m_kernelInfo.m_kernelProgram.ConstantBufferLength = ConstantBufferLength;
427+
428+
IGC::SProgramOutput *kernelProgram = nullptr;
429+
if (info->CompiledSIMDSize == 8)
430+
kernelProgram = &kernel.m_kernelInfo.m_kernelProgram.simd8;
431+
else if (info->CompiledSIMDSize == 16)
432+
kernelProgram = &kernel.m_kernelInfo.m_kernelProgram.simd16;
433+
else if (info->CompiledSIMDSize == 32 || info->CompiledSIMDSize == 1)
434+
kernelProgram = &kernel.m_kernelInfo.m_kernelProgram.simd32;
435+
assert(kernelProgram);
436+
if (info->RelocationTable.Size > 0) {
437+
kernelProgram->m_funcRelocationTable = info->RelocationTable.Buf;
438+
kernelProgram->m_funcRelocationTableSize = info->RelocationTable.Size;
439+
kernelProgram->m_funcRelocationTableEntries =
440+
info->RelocationTable.NumEntries;
441+
}
442+
if (info->SymbolTable.Size > 0) {
443+
kernelProgram->m_funcSymbolTable = info->SymbolTable.Buf;
444+
kernelProgram->m_funcSymbolTableSize = info->SymbolTable.Size;
445+
kernelProgram->m_funcSymbolTableEntries = info->SymbolTable.NumEntries;
446+
}
427447
}
428448

429449
// Combine cmc compiler metadata with jitter info.

IGC/AdaptorOCL/igcmc.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ struct cmc_kernel_info_v2 {
102102
unsigned num_print_strings;
103103
/// The kernel format string storage
104104
cmc_ocl_print_string *print_string_descs;
105+
106+
struct TableInfo {
107+
void *Buf = nullptr;
108+
uint32_t Size = 0;
109+
uint32_t NumEntries = 0;
110+
};
111+
112+
TableInfo RelocationTable;
113+
TableInfo SymbolTable;
105114
};
106115

107116
struct cmc_compile_info_v2 {

0 commit comments

Comments
 (0)