@@ -5688,7 +5688,8 @@ ModulePass *llvm::createGenXFinalizerPass(raw_pwrite_stream &o) {
56885688}
56895689
56905690static SmallVector<const char *, 8 >
5691- collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST) {
5691+ collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST,
5692+ const bool AsmDumpsEnabled) {
56925693 SmallVector<const char *, 8 > Argv;
56935694 auto addArgument = [&Argv, &Saver](StringRef Arg) {
56945695 // String saver guarantees that string is null-terminated.
@@ -5698,6 +5699,12 @@ collectFinalizerArgs(StringSaver &Saver, const GenXSubtarget &ST) {
56985699 addArgument (" -dumpvisa" );
56995700 for (const auto &Fos : FinalizerOpts)
57005701 cl::TokenizeGNUCommandLine (Fos, Saver, Argv);
5702+
5703+ if (AsmDumpsEnabled) {
5704+ addArgument (" -dumpcommonisa" );
5705+ addArgument (" -output" );
5706+ addArgument (" -binary" );
5707+ }
57015708 return Argv;
57025709}
57035710
@@ -5717,6 +5724,7 @@ LLVMContext &GenXModule::getContext() {
57175724}
57185725
57195726static VISABuilder *createVISABuilder (const GenXSubtarget &ST,
5727+ const bool AsmDumpsEnabled,
57205728 vISABuilderMode Mode, WA_TABLE *WaTable,
57215729 LLVMContext &Ctx,
57225730 BumpPtrAllocator &Alloc) {
@@ -5727,7 +5735,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
57275735
57285736 // Prepare array of arguments for Builder API.
57295737 StringSaver Saver{Alloc};
5730- SmallVector<const char *, 8 > Argv = collectFinalizerArgs (Saver, ST);
5738+ SmallVector<const char *, 8 > Argv =
5739+ collectFinalizerArgs (Saver, ST, AsmDumpsEnabled);
57315740
57325741 if (PrintFinalizerOptions)
57335742 dumpFinalizerArgs (Argv, ST.getCPU ());
@@ -5744,7 +5753,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
57445753void GenXModule::InitCISABuilder () {
57455754 IGC_ASSERT (ST);
57465755 const vISABuilderMode Mode = HasInlineAsm () ? vISA_ASM_WRITER : vISA_MEDIA;
5747- CisaBuilder = createVISABuilder (*ST, Mode, WaTable, getContext (), ArgStorage);
5756+ CisaBuilder = createVISABuilder (*ST, AsmDumpsEnabled, Mode, WaTable,
5757+ getContext (), ArgStorage);
57485758}
57495759
57505760VISABuilder *GenXModule::GetCisaBuilder () {
@@ -5762,8 +5772,8 @@ void GenXModule::DestroyCISABuilder() {
57625772
57635773void GenXModule::InitVISAAsmReader () {
57645774 IGC_ASSERT (ST);
5765- VISAAsmTextReader = createVISABuilder (*ST, vISA_ASM_READER, WaTable ,
5766- getContext (), ArgStorage);
5775+ VISAAsmTextReader = createVISABuilder (*ST, AsmDumpsEnabled, vISA_ASM_READER ,
5776+ WaTable, getContext (), ArgStorage);
57675777}
57685778
57695779VISABuilder *GenXModule::GetVISAAsmReader () {
0 commit comments