@@ -83,6 +83,26 @@ typedef struct Par_ThData_t_
8383 Par_Share_t * pShare ;
8484} Par_ThData_t ;
8585static volatile Par_Share_t * g_pUfarShare = NULL ;
86+ static inline void Cec_CopyGiaName ( Gia_Man_t * pSrc , Gia_Man_t * pDst )
87+ {
88+ char * pName = pSrc -> pName ? pSrc -> pName : pSrc -> pSpec ;
89+ if ( pName == NULL )
90+ return ;
91+ if ( pDst -> pName == NULL )
92+ pDst -> pName = Abc_UtilStrsav ( pName );
93+ if ( pDst -> pSpec == NULL )
94+ pDst -> pSpec = Abc_UtilStrsav ( pName );
95+ }
96+ static inline void Cec_CopyGiaNameToAig ( Gia_Man_t * pGia , Aig_Man_t * pAig )
97+ {
98+ char * pName = pGia -> pName ? pGia -> pName : pGia -> pSpec ;
99+ if ( pName == NULL )
100+ return ;
101+ if ( pAig -> pName == NULL )
102+ pAig -> pName = Abc_UtilStrsav ( pName );
103+ if ( pAig -> pSpec == NULL )
104+ pAig -> pSpec = Abc_UtilStrsav ( pName );
105+ }
86106static int Cec_SProveStopUfar ( int RunId )
87107{
88108 (void )RunId ;
@@ -161,6 +181,7 @@ int Cec_GiaProveOne( Gia_Man_t * p, int iEngine, int nTimeOut, int fVerbose, Par
161181 pPars -> pProgress = (void * )pThData ;
162182 }
163183 Aig_Man_t * pAig = Gia_ManToAigSimple ( p );
184+ Cec_CopyGiaNameToAig ( p , pAig );
164185 RetValue = Saig_ManBmcScalable ( pAig , pPars );
165186 p -> pCexSeq = pAig -> pSeqModel ; pAig -> pSeqModel = NULL ;
166187 Aig_ManStop ( pAig );
@@ -177,6 +198,7 @@ int Cec_GiaProveOne( Gia_Man_t * p, int iEngine, int nTimeOut, int fVerbose, Par
177198 pPars -> pProgress = (void * )pThData ;
178199 }
179200 Aig_Man_t * pAig = Gia_ManToAigSimple ( p );
201+ Cec_CopyGiaNameToAig ( p , pAig );
180202 RetValue = Pdr_ManSolve ( pAig , pPars );
181203 p -> pCexSeq = pAig -> pSeqModel ; pAig -> pSeqModel = NULL ;
182204 Aig_ManStop ( pAig );
@@ -194,6 +216,7 @@ int Cec_GiaProveOne( Gia_Man_t * p, int iEngine, int nTimeOut, int fVerbose, Par
194216 pPars -> pProgress = (void * )pThData ;
195217 }
196218 Aig_Man_t * pAig = Gia_ManToAigSimple ( p );
219+ Cec_CopyGiaNameToAig ( p , pAig );
197220 RetValue = Saig_ManBmcScalable ( pAig , pPars );
198221 p -> pCexSeq = pAig -> pSeqModel ; pAig -> pSeqModel = NULL ;
199222 Aig_ManStop ( pAig );
@@ -211,6 +234,7 @@ int Cec_GiaProveOne( Gia_Man_t * p, int iEngine, int nTimeOut, int fVerbose, Par
211234 pPars -> pProgress = (void * )pThData ;
212235 }
213236 Aig_Man_t * pAig = Gia_ManToAigSimple ( p );
237+ Cec_CopyGiaNameToAig ( p , pAig );
214238 RetValue = Pdr_ManSolve ( pAig , pPars );
215239 p -> pCexSeq = pAig -> pSeqModel ; pAig -> pSeqModel = NULL ;
216240 Aig_ManStop ( pAig );
@@ -313,6 +337,7 @@ void Cec_GiaInitThreads( Par_ThData_t * ThData, int nWorkers, Gia_Man_t * p, int
313337 for ( i = 0 ; i < nWorkers ; i ++ )
314338 {
315339 ThData [i ].p = Gia_ManDup (p );
340+ Cec_CopyGiaName ( p , ThData [i ].p );
316341 ThData [i ].iEngine = (fUseUif && i == nWorkers - 1 ) ? PAR_ENGINE_UFAR : i ;
317342 ThData [i ].nTimeOut = nTimeOut ;
318343 ThData [i ].fWorking = 0 ;
@@ -414,7 +439,8 @@ int Cec_GiaProveTest( Gia_Man_t * p, int nProcs, int nTimeOut, int nTimeOut2, in
414439 }
415440 if ( !fSilent )
416441 {
417- printf ( "Problem \"%s\" is " , p -> pSpec );
442+ char * pProbName = p -> pSpec ? p -> pSpec : Gia_ManName (p );
443+ printf ( "Problem \"%s\" is " , pProbName ? pProbName : "(none)" );
418444 if ( RetValue == 0 )
419445 printf ( "SATISFIABLE (solved by %d)." , RetEngine );
420446 else if ( RetValue == 1 )
0 commit comments