@@ -5767,7 +5767,7 @@ ModulePass *llvm::createGenXFinalizerPass(raw_pwrite_stream &o) {
57675767
57685768static SmallVector<const char *, 8 >
57695769collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST,
5770- const bool AsmDumpsEnabled) {
5770+ const bool EnableKernelDebug, const bool AsmDumpsEnabled) {
57715771 SmallVector<const char *, 8 > Argv;
57725772 auto addArgument = [&Argv, &Saver](StringRef Arg) {
57735773 // String saver guarantees that string is null-terminated.
@@ -5778,6 +5778,11 @@ collectFinalizerArgs(StringSaver &Saver, const GenXSubtarget &ST,
57785778 for (const auto &Fos : FinalizerOpts)
57795779 cl::TokenizeGNUCommandLine (Fos, Saver, Argv);
57805780
5781+ if (EnableKernelDebug) {
5782+ addArgument (" -generateDebugInfo" );
5783+ addArgument (" -addKernelID" );
5784+ addArgument (" -setstartbp" );
5785+ }
57815786 if (AsmDumpsEnabled) {
57825787 addArgument (" -dumpcommonisa" );
57835788 addArgument (" -output" );
@@ -5802,6 +5807,7 @@ LLVMContext &GenXModule::getContext() {
58025807}
58035808
58045809static VISABuilder *createVISABuilder (const GenXSubtarget &ST,
5810+ const bool EnableKernelDebug,
58055811 const bool AsmDumpsEnabled,
58065812 vISABuilderMode Mode, WA_TABLE *WaTable,
58075813 LLVMContext &Ctx,
@@ -5814,7 +5820,7 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
58145820 // Prepare array of arguments for Builder API.
58155821 StringSaver Saver{Alloc};
58165822 SmallVector<const char *, 8 > Argv =
5817- collectFinalizerArgs (Saver, ST, AsmDumpsEnabled);
5823+ collectFinalizerArgs (Saver, ST, EnableKernelDebug, AsmDumpsEnabled);
58185824
58195825 if (PrintFinalizerOptions)
58205826 dumpFinalizerArgs (Argv, ST.getCPU ());
@@ -5831,8 +5837,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
58315837void GenXModule::InitCISABuilder () {
58325838 IGC_ASSERT (ST);
58335839 const vISABuilderMode Mode = HasInlineAsm () ? vISA_ASM_WRITER : vISA_MEDIA;
5834- CisaBuilder = createVISABuilder (*ST, AsmDumpsEnabled, Mode, WaTable ,
5835- getContext (), ArgStorage);
5840+ CisaBuilder = createVISABuilder (*ST, EnableKernelDebug, AsmDumpsEnabled, Mode ,
5841+ WaTable, getContext (), ArgStorage);
58365842}
58375843
58385844VISABuilder *GenXModule::GetCisaBuilder () {
@@ -5850,8 +5856,9 @@ void GenXModule::DestroyCISABuilder() {
58505856
58515857void GenXModule::InitVISAAsmReader () {
58525858 IGC_ASSERT (ST);
5853- VISAAsmTextReader = createVISABuilder (*ST, AsmDumpsEnabled, vISA_ASM_READER,
5854- WaTable, getContext (), ArgStorage);
5859+ VISAAsmTextReader =
5860+ createVISABuilder (*ST, EnableKernelDebug, AsmDumpsEnabled,
5861+ vISA_ASM_READER, WaTable, getContext (), ArgStorage);
58555862}
58565863
58575864VISABuilder *GenXModule::GetVISAAsmReader () {
0 commit comments