Move top-level AST to HIR conversion to _mesa_ast_to_hir
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 10 Mar 2010 17:55:22 +0000 (09:55 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 10 Mar 2010 17:55:22 +0000 (09:55 -0800)
ast.h
ast_to_hir.cpp
glsl_parser_extras.cpp

diff --git a/ast.h b/ast.h
index fa84a91..3631692 100644 (file)
--- a/ast.h
+++ b/ast.h
@@ -492,6 +492,9 @@ public:
 };
 
 
+extern void
+_mesa_ast_to_hir(exec_list *instructions, struct _mesa_glsl_parse_state *state);
+
 extern struct ir_instruction *
 _mesa_ast_field_selection_to_hir(const struct ast_expression *expr,
                                 exec_list *instructions,
index becc832..e371007 100644 (file)
 #include "glsl_types.h"
 #include "ir.h"
 
+void
+_mesa_ast_to_hir(exec_list *instructions, struct _mesa_glsl_parse_state *state)
+{
+   struct simple_node *ptr;
+
+   foreach (ptr, & state->translation_unit) {
+      ((ast_node *)ptr)->hir(instructions, state);
+   }
+}
+
+
 static const struct glsl_type *
 arithmetic_result_type(const struct glsl_type *type_a,
                       const struct glsl_type *type_b,
index 222f06b..d066ca3 100644 (file)
@@ -718,9 +718,7 @@ main(int argc, char **argv)
       ((ast_node *)ptr)->print();
    }
 
-   foreach (ptr, & state.translation_unit) {
-      ((ast_node *)ptr)->hir(&instructions, &state);
-   }
+   _mesa_ast_to_hir(&instructions, &state);
 
    printf("\n\n");
    foreach_iter(exec_list_iterator, iter, instructions) {