summaryrefslogtreecommitdiff
path: root/src/cuda-sim/ptxinfo.y
diff options
context:
space:
mode:
authorsspenst <[email protected]>2016-06-13 01:08:36 -0700
committersspenst <[email protected]>2016-06-13 01:08:36 -0700
commit547ce656018a6439e658be3c283721a961b0217f (patch)
treecbd81e6b3d3fdee79ce9f934fe4c92a5c984cc36 /src/cuda-sim/ptxinfo.y
parent7356669b66425ee73ba61466f37fe25b886a3641 (diff)
If ptxas notices any duplicate errors, they now automatically get resolved and the program continues with the duplicate function/variable declarations removed.
Diffstat (limited to 'src/cuda-sim/ptxinfo.y')
-rw-r--r--src/cuda-sim/ptxinfo.y16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/cuda-sim/ptxinfo.y b/src/cuda-sim/ptxinfo.y
index faa33eb..37092f4 100644
--- a/src/cuda-sim/ptxinfo.y
+++ b/src/cuda-sim/ptxinfo.y
@@ -55,11 +55,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%token <string_value> WARNING
%token FOR
%token TEXTURES
+%token DUPLICATE
+%token <string_value> FUNCTION
+%token <string_value> VARIABLE
+%token FATAL
%{
#include <stdlib.h>
#include <string.h>
-
+
static unsigned g_declared;
static unsigned g_system;
int ptxinfo_lex(void);
@@ -71,6 +75,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
void ptxinfo_smem( unsigned declared, unsigned system );
void ptxinfo_cmem( unsigned nbytes, unsigned bank );
int ptxinfo_error(const char*);
+ void ptxinfo_linenum( unsigned );
+ void ptxinfo_dup_type( const char* );
%}
%%
@@ -82,6 +88,8 @@ input: /* empty */
line: HEADER INFO COLON line_info
| HEADER IDENTIFIER COMMA LINE INT_OPERAND SEMICOLON WARNING
| HEADER WARNING { printf("GPGPU-Sim: ptxas %s\n", $2); }
+ | HEADER IDENTIFIER COMMA LINE INT_OPERAND SEMICOLON DUPLICATE duplicate { ptxinfo_linenum($5); }
+ | HEADER FATAL
;
line_info: function_name
@@ -89,7 +97,7 @@ line_info: function_name
;
function_name: FUNC QUOTE IDENTIFIER QUOTE { ptxinfo_function($3); }
- | FUNC QUOTE IDENTIFIER QUOTE FOR QUOTE IDENTIFIER QUOTE {ptxinfo_function($3); }
+ | FUNC QUOTE IDENTIFIER QUOTE FOR QUOTE IDENTIFIER QUOTE { ptxinfo_function($3); }
;
function_info: info
@@ -110,6 +118,10 @@ info: USED INT_OPERAND REGS { ptxinfo_regs($2); }
tuple: INT_OPERAND PLUS INT_OPERAND BYTES { g_declared=$1; g_system=$3; }
+duplicate: FUNCTION QUOTE IDENTIFIER QUOTE { ptxinfo_dup_type($1); }
+ | VARIABLE QUOTE IDENTIFIER QUOTE { ptxinfo_dup_type($1); }
+ ;
+
%%