summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cuda-sim/ptx_loader.cc18
-rw-r--r--src/cuda-sim/ptx_loader.h2
-rw-r--r--src/cuda-sim/ptxinfo.l3
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++ ) {