@@ -4961,6 +4961,7 @@ namespace IGC
4961
4961
// Use the same build options as before
4962
4962
SetBuilderOptions (vAsmTextBuilder);
4963
4963
4964
+ bool vISAAsmParseError = false ;
4964
4965
// Parse the generated VISA text
4965
4966
if (visaAsmOverride)
4966
4967
{
@@ -4969,9 +4970,10 @@ namespace IGC
4969
4970
asmName.pop_back ();
4970
4971
vAsmTextBuilder->SetOption (VISA_AsmFileNameUser, true );
4971
4972
vAsmTextBuilder->SetOption (VISA_AsmFileName, asmName.c_str ());
4972
- V ( vAsmTextBuilder->ParseVISAText (visaAsmOverrideFile) );
4973
+ auto result = vAsmTextBuilder->ParseVISAText (visaAsmOverrideFile);
4973
4974
asmName = asmName + " .visaasm" ;
4974
4975
appendToShaderOverrideLogFile (asmName, " OVERRIDEN: " );
4976
+ vISAAsmParseError = (result != 0 );
4975
4977
}
4976
4978
else
4977
4979
{
@@ -4983,11 +4985,20 @@ namespace IGC
4983
4985
raw_string_ostream S (output);
4984
4986
S << " parsing vISA inline assembly failed:\t " << vAsmTextBuilder->GetCriticalMsg ();
4985
4987
context->EmitError (output.c_str ());
4988
+ vISAAsmParseError = true ;
4986
4989
}
4987
4990
}
4988
4991
4989
- pMainKernel = vAsmTextBuilder->GetVISAKernel ();
4990
- vIsaCompile = vAsmTextBuilder->Compile (m_enableVISAdump ? GetDumpFileName (" isa" ).c_str () : " " );
4992
+ if (vISAAsmParseError)
4993
+ {
4994
+ COMPILER_TIME_END (m_program->GetContext (), TIME_CG_vISACompile);
4995
+ return ;
4996
+ }
4997
+ else
4998
+ {
4999
+ pMainKernel = vAsmTextBuilder->GetVISAKernel ();
5000
+ vIsaCompile = vAsmTextBuilder->Compile (m_enableVISAdump ? GetDumpFileName (" isa" ).c_str () : " " );
5001
+ }
4991
5002
}
4992
5003
// Compile to generate the V-ISA binary
4993
5004
else
@@ -4996,7 +5007,17 @@ namespace IGC
4996
5007
vIsaCompile = vbuilder->Compile (m_enableVISAdump ? GetDumpFileName (" isa" ).c_str () : " " );
4997
5008
}
4998
5009
4999
- FINALIZER_INFO* jitInfo;
5010
+ COMPILER_TIME_END (m_program->GetContext (), TIME_CG_vISACompile);
5011
+
5012
+ #if GET_TIME_STATS
5013
+ // handle the vISA time counters differently here
5014
+ if (context->m_compilerTimeStats )
5015
+ {
5016
+ context->m_compilerTimeStats ->recordVISATimers ();
5017
+ }
5018
+ #endif
5019
+
5020
+ FINALIZER_INFO* jitInfo = nullptr ;
5000
5021
pMainKernel->GetJitInfo (jitInfo);
5001
5022
if (jitInfo->isSpill )
5002
5023
{
@@ -5007,15 +5028,6 @@ namespace IGC
5007
5028
5008
5029
context->m_retryManager .numInstructions = jitInfo->numAsmCount ;
5009
5030
}
5010
- COMPILER_TIME_END (m_program->GetContext (), TIME_CG_vISACompile);
5011
-
5012
- #if GET_TIME_STATS
5013
- // handle the vISA time counters differently here
5014
- if (context->m_compilerTimeStats )
5015
- {
5016
- context->m_compilerTimeStats ->recordVISATimers ();
5017
- }
5018
- #endif
5019
5031
5020
5032
if (IGC_IS_FLAG_ENABLED (DumpCompilerStats))
5021
5033
{
0 commit comments