@@ -5688,7 +5688,8 @@ ModulePass *llvm::createGenXFinalizerPass(raw_pwrite_stream &o) {
5688
5688
}
5689
5689
5690
5690
static SmallVector<const char *, 8 >
5691
- collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST) {
5691
+ collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST,
5692
+ const bool AsmDumpsEnabled) {
5692
5693
SmallVector<const char *, 8 > Argv;
5693
5694
auto addArgument = [&Argv, &Saver](StringRef Arg) {
5694
5695
// String saver guarantees that string is null-terminated.
@@ -5698,6 +5699,12 @@ collectFinalizerArgs(StringSaver &Saver, const GenXSubtarget &ST) {
5698
5699
addArgument (" -dumpvisa" );
5699
5700
for (const auto &Fos : FinalizerOpts)
5700
5701
cl::TokenizeGNUCommandLine (Fos, Saver, Argv);
5702
+
5703
+ if (AsmDumpsEnabled) {
5704
+ addArgument (" -dumpcommonisa" );
5705
+ addArgument (" -output" );
5706
+ addArgument (" -binary" );
5707
+ }
5701
5708
return Argv;
5702
5709
}
5703
5710
@@ -5717,6 +5724,7 @@ LLVMContext &GenXModule::getContext() {
5717
5724
}
5718
5725
5719
5726
static VISABuilder *createVISABuilder (const GenXSubtarget &ST,
5727
+ const bool AsmDumpsEnabled,
5720
5728
vISABuilderMode Mode, WA_TABLE *WaTable,
5721
5729
LLVMContext &Ctx,
5722
5730
BumpPtrAllocator &Alloc) {
@@ -5727,7 +5735,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
5727
5735
5728
5736
// Prepare array of arguments for Builder API.
5729
5737
StringSaver Saver{Alloc};
5730
- SmallVector<const char *, 8 > Argv = collectFinalizerArgs (Saver, ST);
5738
+ SmallVector<const char *, 8 > Argv =
5739
+ collectFinalizerArgs (Saver, ST, AsmDumpsEnabled);
5731
5740
5732
5741
if (PrintFinalizerOptions)
5733
5742
dumpFinalizerArgs (Argv, ST.getCPU ());
@@ -5744,7 +5753,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
5744
5753
void GenXModule::InitCISABuilder () {
5745
5754
IGC_ASSERT (ST);
5746
5755
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);
5748
5758
}
5749
5759
5750
5760
VISABuilder *GenXModule::GetCisaBuilder () {
@@ -5762,8 +5772,8 @@ void GenXModule::DestroyCISABuilder() {
5762
5772
5763
5773
void GenXModule::InitVISAAsmReader () {
5764
5774
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);
5767
5777
}
5768
5778
5769
5779
VISABuilder *GenXModule::GetVISAAsmReader () {
0 commit comments