From b26dda933fe84d54cad47762ae80be3acdfda91b Mon Sep 17 00:00:00 2001 From: Tor Aamodt Date: Sun, 8 Aug 2010 14:28:20 -0800 Subject: refactoring: moving PTX parsing functions into ptx_parser.* [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7167] --- src/cuda-sim/ptx_loader.cc | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'src/cuda-sim/ptx_loader.cc') diff --git a/src/cuda-sim/ptx_loader.cc b/src/cuda-sim/ptx_loader.cc index 8c13f6d..fb4e8dd 100644 --- a/src/cuda-sim/ptx_loader.cc +++ b/src/cuda-sim/ptx_loader.cc @@ -65,6 +65,7 @@ #include "ptx_loader.h" #include "ptx_ir.h" #include "cuda-sim.h" +#include "ptx_parser.h" #include /// globals @@ -211,7 +212,7 @@ void gpgpu_ptx_sim_load_gpu_kernels() ptx_in = fopen( g_filename, "r" ); gpgpu_ptx_sim_init_memory(); if (ptx_in) { - init_parser(); + init_parser(g_filename); ptx_parse(); ptxinfo_in = open_ptxinfo(g_filename); ptxinfo_parse(); @@ -227,28 +228,25 @@ void gpgpu_ptx_sim_load_gpu_kernels() load_constants(g_global_symbol_table,STATIC_ALLOC_LIMIT); } } else { - g_filename = NULL; + const char *filename = NULL; struct dirent **namelist; - int n; - - n = scandir(".", &namelist, ptx_file_filter, alphasort); + int n = scandir(".", &namelist, ptx_file_filter, alphasort); if (n < 0) - perror("scandir"); + perror("GPGPU-Sim PTX: no PTX files returned by scandir"); else { while (n--) { - if ( g_filename != NULL ) { + if ( filename != NULL ) { printf("Loader error: support for multiple .ptx files not yet enabled\n"); abort(); } - g_filename = strdup(namelist[n]->d_name); - printf("Parsing %s..\n", g_filename); - ptx_in = fopen( g_filename, "r" ); + filename = namelist[n]->d_name; + printf("Parsing %s..\n", filename); + ptx_in = fopen( filename, "r" ); free(namelist[n]); - init_parser(); + init_parser(filename); ptx_parse (); - ptxinfo_in = open_ptxinfo(g_filename); + ptxinfo_in = open_ptxinfo(filename); ptxinfo_parse(); - g_filename = NULL; load_static_globals(g_global_symbol_table,STATIC_ALLOC_LIMIT,0xFFFFFFFF); load_constants(g_global_symbol_table,STATIC_ALLOC_LIMIT); } @@ -267,11 +265,10 @@ void gpgpu_ptx_sim_load_gpu_kernels() } if ( g_error_detected ) { - printf( "GPGPU-Sim PTX: Program parsing completed: Errors detected.\n" ); + printf( "GPGPU-Sim PTX: PTX parsing errors detected -- exiting.\n" ); exit(1); - } else { - printf( "GPGPU-Sim PTX: Program parsing completed (max %u registers used per thread).\n", g_max_regs_per_thread ); } + printf( "GPGPU-Sim PTX: Program parsing completed\n" ); if ( g_kernel_name_to_function_lookup ) { for ( std::map::iterator f=g_kernel_name_to_function_lookup->begin(); -- cgit v1.3