@@ -5753,7 +5753,9 @@ ModulePass *llvm::createGenXFinalizerPass(raw_pwrite_stream &o) {
5753
5753
5754
5754
static SmallVector<const char *, 8 >
5755
5755
collectFinalizerArgs (StringSaver &Saver, const GenXSubtarget &ST,
5756
- const bool EnableKernelDebug, const bool AsmDumpsEnabled) {
5756
+ const bool EnableKernelDebug,
5757
+ const bool AsmDumpsEnabled,
5758
+ const bool OptimizationDisabled) {
5757
5759
SmallVector<const char *, 8 > Argv;
5758
5760
auto addArgument = [&Argv, &Saver](StringRef Arg) {
5759
5761
// String saver guarantees that string is null-terminated.
@@ -5774,6 +5776,9 @@ collectFinalizerArgs(StringSaver &Saver, const GenXSubtarget &ST,
5774
5776
addArgument (" -output" );
5775
5777
addArgument (" -binary" );
5776
5778
}
5779
+ if (OptimizationDisabled) {
5780
+ addArgument (" -noschedule" );
5781
+ }
5777
5782
return Argv;
5778
5783
}
5779
5784
@@ -5795,6 +5800,7 @@ LLVMContext &GenXModule::getContext() {
5795
5800
static VISABuilder *createVISABuilder (const GenXSubtarget &ST,
5796
5801
const bool EnableKernelDebug,
5797
5802
const bool AsmDumpsEnabled,
5803
+ const bool OptimizationDisabled,
5798
5804
vISABuilderMode Mode, WA_TABLE *WaTable,
5799
5805
LLVMContext &Ctx,
5800
5806
BumpPtrAllocator &Alloc) {
@@ -5806,7 +5812,8 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
5806
5812
// Prepare array of arguments for Builder API.
5807
5813
StringSaver Saver{Alloc};
5808
5814
SmallVector<const char *, 8 > Argv =
5809
- collectFinalizerArgs (Saver, ST, EnableKernelDebug, AsmDumpsEnabled);
5815
+ collectFinalizerArgs (Saver, ST, EnableKernelDebug,
5816
+ AsmDumpsEnabled, OptimizationDisabled);
5810
5817
5811
5818
if (PrintFinalizerOptions)
5812
5819
dumpFinalizerArgs (Argv, ST.getCPU ());
@@ -5822,9 +5829,13 @@ static VISABuilder *createVISABuilder(const GenXSubtarget &ST,
5822
5829
5823
5830
void GenXModule::InitCISABuilder () {
5824
5831
IGC_ASSERT (ST);
5832
+ GenXTargetMachine *TM = &getAnalysis<TargetPassConfig>()
5833
+ .getTM <GenXTargetMachine>();
5834
+ const bool OptimizationDisabled = TM->getOptLevel () == CodeGenOpt::None;
5825
5835
const vISABuilderMode Mode = HasInlineAsm () ? vISA_ASM_WRITER : vISA_MEDIA;
5826
- CisaBuilder = createVISABuilder (*ST, EnableKernelDebug, AsmDumpsEnabled, Mode,
5827
- WaTable, getContext (), ArgStorage);
5836
+ CisaBuilder = createVISABuilder (*ST, EnableKernelDebug, AsmDumpsEnabled,
5837
+ OptimizationDisabled, Mode, WaTable,
5838
+ getContext (), ArgStorage);
5828
5839
}
5829
5840
5830
5841
VISABuilder *GenXModule::GetCisaBuilder () {
@@ -5844,7 +5855,9 @@ void GenXModule::InitVISAAsmReader() {
5844
5855
IGC_ASSERT (ST);
5845
5856
VISAAsmTextReader =
5846
5857
createVISABuilder (*ST, EnableKernelDebug, AsmDumpsEnabled,
5847
- vISA_ASM_READER, WaTable, getContext (), ArgStorage);
5858
+ /* OptimizationDisabled*/ false ,
5859
+ vISA_ASM_READER, WaTable,
5860
+ getContext (), ArgStorage);
5848
5861
}
5849
5862
5850
5863
VISABuilder *GenXModule::GetVISAAsmReader () {
0 commit comments