diff options
| -rw-r--r-- | src/cuda-sim/ptx_loader.cc | 18 | ||||
| -rw-r--r-- | src/cuda-sim/ptx_loader.h | 2 | ||||
| -rw-r--r-- | src/cuda-sim/ptxinfo.l | 3 |
3 files changed, 11 insertions, 12 deletions
diff --git a/src/cuda-sim/ptx_loader.cc b/src/cuda-sim/ptx_loader.cc index 2d931f1..9857741 100644 --- a/src/cuda-sim/ptx_loader.cc +++ b/src/cuda-sim/ptx_loader.cc @@ -50,8 +50,6 @@ extern int ptx__scan_string(const char*, yyscan_t scanner); extern std::map<unsigned,const char*> get_duplicate(); -const char *g_ptxinfo_filename; - typedef void * yyscan_t; extern int ptxinfo_lex_init(yyscan_t* scanner); extern void ptxinfo_set_in (FILE * _in_str ,yyscan_t yyscanner ); @@ -353,10 +351,10 @@ void gpgpu_ptx_info_load_from_filename( const char *filename, unsigned sm_versio exit(1); } - g_ptxinfo_filename = strdup(ptxas_filename.c_str()); FILE *ptxinfo_in; - ptxinfo_in = fopen(g_ptxinfo_filename,"r"); ptxinfo_data ptxinfo; + ptxinfo.g_ptxinfo_filename = strdup(ptxas_filename.c_str()); + ptxinfo_in = fopen(ptxinfo.g_ptxinfo_filename,"r"); ptxinfo_lex_init(&(ptxinfo.scanner)); ptxinfo_set_in(ptxinfo_in, ptxinfo.scanner); ptxinfo_parse(ptxinfo.scanner, &ptxinfo); @@ -422,10 +420,10 @@ void gpgpu_ptxinfo_load_from_string( const char *p_for_info, unsigned source_num if( result != 0 ) { // 65280 = duplicate errors if (result == 65280) { + ptxinfo_data ptxinfo; FILE *ptxinfo_in; ptxinfo_in = fopen(tempfile_ptxinfo,"r"); - g_ptxinfo_filename = tempfile_ptxinfo; - ptxinfo_data ptxinfo; + ptxinfo.g_ptxinfo_filename = tempfile_ptxinfo; ptxinfo_lex_init(&(ptxinfo.scanner)); ptxinfo_set_in(ptxinfo_in, ptxinfo.scanner); ptxinfo_parse(ptxinfo.scanner, &ptxinfo); @@ -509,14 +507,14 @@ void gpgpu_ptxinfo_load_from_string( const char *p_for_info, unsigned source_num } } + ptxinfo_data ptxinfo; if(no_of_ptx>0) - g_ptxinfo_filename = final_tempfile_ptxinfo; + ptxinfo.g_ptxinfo_filename = final_tempfile_ptxinfo; else - g_ptxinfo_filename = tempfile_ptxinfo; + ptxinfo.g_ptxinfo_filename = tempfile_ptxinfo; FILE *ptxinfo_in; - ptxinfo_in = fopen(g_ptxinfo_filename,"r"); + ptxinfo_in = fopen(ptxinfo.g_ptxinfo_filename,"r"); - ptxinfo_data ptxinfo; ptxinfo_lex_init(&(ptxinfo.scanner)); ptxinfo_set_in(ptxinfo_in, ptxinfo.scanner); ptxinfo_parse(ptxinfo.scanner, &ptxinfo); diff --git a/src/cuda-sim/ptx_loader.h b/src/cuda-sim/ptx_loader.h index 2af611a..c3ce888 100644 --- a/src/cuda-sim/ptx_loader.h +++ b/src/cuda-sim/ptx_loader.h @@ -36,6 +36,8 @@ class ptxinfo_data{ yyscan_t scanner; char linebuf[LINEBUF_SIZE]; unsigned col; + const char *g_ptxinfo_filename; + }; diff --git a/src/cuda-sim/ptxinfo.l b/src/cuda-sim/ptxinfo.l index 92f7a30..b0ada09 100644 --- a/src/cuda-sim/ptxinfo.l +++ b/src/cuda-sim/ptxinfo.l @@ -89,7 +89,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. extern int g_ptxinfo_error_detected; extern const char *g_filename; -extern const char *g_ptxinfo_filename; int ptxinfo_error(yyscan_t yyscanner, ptxinfo_data* ptxinfo, const char* msg) { @@ -99,7 +98,7 @@ int ptxinfo_error(yyscan_t yyscanner, ptxinfo_data* ptxinfo, const char* msg) fflush(stdout); printf("GPGPU-Sim: ERROR while parsing output of ptxas (used to capture resource usage information)\n"); if( msg != NULL ) - printf("GPGPU-Sim: %s (%s:%u) Syntax error:\n\n", g_filename, g_ptxinfo_filename, yylineno ); + printf("GPGPU-Sim: %s (%s:%u) Syntax error:\n\n", g_filename, ptxinfo->g_ptxinfo_filename, yylineno ); printf(" %s\n", ptxinfo->linebuf ); printf(" "); for( i=0; i < ptxinfo->col-1; i++ ) { |
