diff options
| author | Tor Aamodt <[email protected]> | 2010-07-16 23:13:34 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-07-16 23:13:34 -0800 |
| commit | d67e0e6d7c50a5c6f567e387e17782f022553264 (patch) | |
| tree | 814766699be6d3ede2b7d74f2bdfb060cbc196cd /src/cuda-sim/ptx_ir.cc | |
| parent | 55506aed771c40e93f374cffb04c6e48b34e6003 (diff) | |
template compiled with "make noinline=1" now parses, runs, passes
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6857]
Diffstat (limited to 'src/cuda-sim/ptx_ir.cc')
| -rw-r--r-- | src/cuda-sim/ptx_ir.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc index 542426a..c981802 100644 --- a/src/cuda-sim/ptx_ir.cc +++ b/src/cuda-sim/ptx_ir.cc @@ -181,6 +181,14 @@ void start_function( int entry_point ) g_entry_func_param_index=0; } +static bool g_in_function_definition = false; + +void start_function_definition() +{ + DPRINTF("start_function_definition"); + g_in_function_definition = true; +} + char *g_add_identifier_cached__identifier = NULL; int g_add_identifier_cached__array_dim; int g_add_identifier_cached__array_ident; @@ -222,12 +230,14 @@ void end_function() { DPRINTF("end_function"); + g_in_function_definition = false; init_directive_state(); init_instruction_state(); g_max_regs_per_thread = mymax( g_max_regs_per_thread, (g_current_symbol_table->next_reg_num()-1)); g_func_info->add_inst( g_instructions ); g_instructions.clear(); gpgpu_ptx_assemble( g_func_info->get_name(), g_func_info ); + g_current_symbol_table = g_global_symbol_table; DPRINTF("function %s, PC = %d\n", g_func_info->get_name().c_str(), g_func_info->get_start_PC()); } @@ -472,8 +482,10 @@ void add_identifier( const char *identifier, int array_dim, unsigned array_ident if ( ti.is_param() ) { - g_func_info->add_param_name_and_type(g_entry_func_param_index,identifier, ti.scalar_type() ); - g_entry_func_param_index++; + if( !g_in_function_definition ) { + g_func_info->add_param_name_and_type(g_entry_func_param_index,identifier, ti.scalar_type() ); + g_entry_func_param_index++; + } } } @@ -1268,6 +1280,11 @@ extern "C" void set_symtab(void*symtab) g_current_symbol_table = (symbol_table*)symtab; } +extern "C" void add_pragma( const char *str ) +{ + printf("GPGPU-Sim: Warning -- ignoring pragma '%s'\n", str ); +} + unsigned ptx_kernel_shmem_size( void *kernel_impl ) { function_info *f = (function_info*)kernel_impl; |
