Re: [Mesa-dev] [PATCH 12/19] glsl: Generalize processing of variable redeclarations.

2013-10-08 Thread Paul Berry
On 5 October 2013 12:25, Kenneth Graunke kenn...@whitecape.org wrote:

 On 10/02/2013 05:45 PM, Paul Berry wrote:
  This patch modifies the get_variable_being_redeclared() function so
  that it no longer relies on the ast_declaration for the variable being
  redeclared.  In future patches, this will allow
  get_variable_being_redeclared() to be used for processing
  redeclarations of the built-in gl_PerVertex interface block.
  ---
   src/glsl/ast_to_hir.cpp | 13 ++---
   1 file changed, 6 insertions(+), 7 deletions(-)
 
  diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
  index 8fb7f2f..de65c71 100644
  --- a/src/glsl/ast_to_hir.cpp
  +++ b/src/glsl/ast_to_hir.cpp
  @@ -2327,7 +2327,7 @@ apply_type_qualifier_to_variable(const struct
 ast_type_qualifier *qual,
* is a redeclaration, \c NULL otherwise.
*/
   ir_variable *
  -get_variable_being_redeclared(ir_variable *var, ast_declaration *decl,
  +get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
  struct _mesa_glsl_parse_state *state)

 While you're at it, would you mind making this function static?


Done.



 Either way, patches 5-12 are:
 Reviewed-by: Kenneth Graunke kenn...@whitecape.org

   {
  /* Check if this declaration is actually a re-declaration, either to
  @@ -2336,16 +2336,14 @@ get_variable_being_redeclared(ir_variable *var,
 ast_declaration *decl,
   * This is allowed for variables in the current scope, or when at
   * global scope (for built-ins in the implicit outer scope).
   */
  -   ir_variable *earlier =
 state-symbols-get_variable(decl-identifier);
  +   ir_variable *earlier = state-symbols-get_variable(var-name);
  if (earlier == NULL ||
  (state-current_function != NULL 
  - !state-symbols-name_declared_this_scope(decl-identifier))) {
  + !state-symbols-name_declared_this_scope(var-name))) {
 return NULL;
  }
 
 
  -   YYLTYPE loc = decl-get_location();
  -
  /* From page 24 (page 30 of the PDF) of the GLSL 1.50 spec,
   *
   * It is legal to declare an array without a size and then
  @@ -2434,7 +2432,7 @@ get_variable_being_redeclared(ir_variable *var,
 ast_declaration *decl,
 earlier-depth_layout = var-depth_layout;
 
  } else {
  -  _mesa_glsl_error(loc, state, `%s' redeclared,
 decl-identifier);
  +  _mesa_glsl_error(loc, state, `%s' redeclared, var-name);
  }
 
  return earlier;
  @@ -3221,7 +3219,8 @@ ast_declarator_list::hir(exec_list *instructions,
  * instruction stream.
  */
 exec_list initializer_instructions;
  -  ir_variable *earlier = get_variable_being_redeclared(var, decl,
 state);
  +  ir_variable *earlier =
  + get_variable_being_redeclared(var, decl-get_location(),
 state);
 
 if (decl-initializer != NULL) {
 result = process_initializer((earlier == NULL) ? var : earlier,
 


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 12/19] glsl: Generalize processing of variable redeclarations.

2013-10-05 Thread Kenneth Graunke
On 10/02/2013 05:45 PM, Paul Berry wrote:
 This patch modifies the get_variable_being_redeclared() function so
 that it no longer relies on the ast_declaration for the variable being
 redeclared.  In future patches, this will allow
 get_variable_being_redeclared() to be used for processing
 redeclarations of the built-in gl_PerVertex interface block.
 ---
  src/glsl/ast_to_hir.cpp | 13 ++---
  1 file changed, 6 insertions(+), 7 deletions(-)
 
 diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
 index 8fb7f2f..de65c71 100644
 --- a/src/glsl/ast_to_hir.cpp
 +++ b/src/glsl/ast_to_hir.cpp
 @@ -2327,7 +2327,7 @@ apply_type_qualifier_to_variable(const struct 
 ast_type_qualifier *qual,
   * is a redeclaration, \c NULL otherwise.
   */
  ir_variable *
 -get_variable_being_redeclared(ir_variable *var, ast_declaration *decl,
 +get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
 struct _mesa_glsl_parse_state *state)

While you're at it, would you mind making this function static?

Either way, patches 5-12 are:
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

  {
 /* Check if this declaration is actually a re-declaration, either to
 @@ -2336,16 +2336,14 @@ get_variable_being_redeclared(ir_variable *var, 
 ast_declaration *decl,
  * This is allowed for variables in the current scope, or when at
  * global scope (for built-ins in the implicit outer scope).
  */
 -   ir_variable *earlier = state-symbols-get_variable(decl-identifier);
 +   ir_variable *earlier = state-symbols-get_variable(var-name);
 if (earlier == NULL ||
 (state-current_function != NULL 
 - !state-symbols-name_declared_this_scope(decl-identifier))) {
 + !state-symbols-name_declared_this_scope(var-name))) {
return NULL;
 }
  
  
 -   YYLTYPE loc = decl-get_location();
 -
 /* From page 24 (page 30 of the PDF) of the GLSL 1.50 spec,
  *
  * It is legal to declare an array without a size and then
 @@ -2434,7 +2432,7 @@ get_variable_being_redeclared(ir_variable *var, 
 ast_declaration *decl,
earlier-depth_layout = var-depth_layout;
  
 } else {
 -  _mesa_glsl_error(loc, state, `%s' redeclared, decl-identifier);
 +  _mesa_glsl_error(loc, state, `%s' redeclared, var-name);
 }
  
 return earlier;
 @@ -3221,7 +3219,8 @@ ast_declarator_list::hir(exec_list *instructions,
 * instruction stream.
 */
exec_list initializer_instructions;
 -  ir_variable *earlier = get_variable_being_redeclared(var, decl, state);
 +  ir_variable *earlier =
 + get_variable_being_redeclared(var, decl-get_location(), state);
  
if (decl-initializer != NULL) {
result = process_initializer((earlier == NULL) ? var : earlier,
 

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 12/19] glsl: Generalize processing of variable redeclarations.

2013-10-02 Thread Paul Berry
This patch modifies the get_variable_being_redeclared() function so
that it no longer relies on the ast_declaration for the variable being
redeclared.  In future patches, this will allow
get_variable_being_redeclared() to be used for processing
redeclarations of the built-in gl_PerVertex interface block.
---
 src/glsl/ast_to_hir.cpp | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 8fb7f2f..de65c71 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2327,7 +2327,7 @@ apply_type_qualifier_to_variable(const struct 
ast_type_qualifier *qual,
  * is a redeclaration, \c NULL otherwise.
  */
 ir_variable *
-get_variable_being_redeclared(ir_variable *var, ast_declaration *decl,
+get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
  struct _mesa_glsl_parse_state *state)
 {
/* Check if this declaration is actually a re-declaration, either to
@@ -2336,16 +2336,14 @@ get_variable_being_redeclared(ir_variable *var, 
ast_declaration *decl,
 * This is allowed for variables in the current scope, or when at
 * global scope (for built-ins in the implicit outer scope).
 */
-   ir_variable *earlier = state-symbols-get_variable(decl-identifier);
+   ir_variable *earlier = state-symbols-get_variable(var-name);
if (earlier == NULL ||
(state-current_function != NULL 
-   !state-symbols-name_declared_this_scope(decl-identifier))) {
+   !state-symbols-name_declared_this_scope(var-name))) {
   return NULL;
}
 
 
-   YYLTYPE loc = decl-get_location();
-
/* From page 24 (page 30 of the PDF) of the GLSL 1.50 spec,
 *
 * It is legal to declare an array without a size and then
@@ -2434,7 +2432,7 @@ get_variable_being_redeclared(ir_variable *var, 
ast_declaration *decl,
   earlier-depth_layout = var-depth_layout;
 
} else {
-  _mesa_glsl_error(loc, state, `%s' redeclared, decl-identifier);
+  _mesa_glsl_error(loc, state, `%s' redeclared, var-name);
}
 
return earlier;
@@ -3221,7 +3219,8 @@ ast_declarator_list::hir(exec_list *instructions,
* instruction stream.
*/
   exec_list initializer_instructions;
-  ir_variable *earlier = get_variable_being_redeclared(var, decl, state);
+  ir_variable *earlier =
+ get_variable_being_redeclared(var, decl-get_location(), state);
 
   if (decl-initializer != NULL) {
 result = process_initializer((earlier == NULL) ? var : earlier,
-- 
1.8.4

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev