summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-04-28 13:04:15 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-04-28 18:22:54 -0700
commit36d8a64a95354d09685e65c5e721038ff81b6d1f (patch)
tree5185fd20ac85a5d93b578d93448f13ab8cf0f0e8
parent7d82c765a8ac7bdbad4cb445b1d2fd216a6e744d (diff)
IR print visitor: Move logic for printing the whole program to _mesa_print_ir
-rw-r--r--glsl_parser_extras.cpp9
-rw-r--r--ir_print_visitor.cpp16
-rw-r--r--ir_print_visitor.h3
3 files changed, 20 insertions, 8 deletions
diff --git a/glsl_parser_extras.cpp b/glsl_parser_extras.cpp
index efcb125..4255d2d 100644
--- a/glsl_parser_extras.cpp
+++ b/glsl_parser_extras.cpp
@@ -789,14 +789,7 @@ main(int argc, char **argv)
printf("\n\n");
if (!state.error) {
- printf("(\n");
- foreach_iter(exec_list_iterator, iter, instructions) {
- ir_print_visitor v;
-
- ((ir_instruction *)iter.get())->accept(& v);
- printf("\n");
- }
- printf("\n)");
+ _mesa_print_ir(&instructions, &state);
}
delete state.symbols;
diff --git a/ir_print_visitor.cpp b/ir_print_visitor.cpp
index f1108c6..272e892 100644
--- a/ir_print_visitor.cpp
+++ b/ir_print_visitor.cpp
@@ -24,6 +24,22 @@
#include "ir_print_visitor.h"
#include "glsl_types.h"
+void
+_mesa_print_ir(exec_list *instructions,
+ struct _mesa_glsl_parse_state *state)
+{
+ (void) state;
+
+ printf("(\n");
+ foreach_iter(exec_list_iterator, iter, *instructions) {
+ ir_print_visitor v;
+
+ ((ir_instruction *)iter.get())->accept(& v);
+ printf("\n");
+ }
+ printf("\n)");
+}
+
static void
print_type(const glsl_type *t)
{
diff --git a/ir_print_visitor.h b/ir_print_visitor.h
index b241f92..aeee538 100644
--- a/ir_print_visitor.h
+++ b/ir_print_visitor.h
@@ -29,6 +29,9 @@
#include "ir.h"
#include "ir_visitor.h"
+extern void _mesa_print_ir(exec_list *instructions,
+ struct _mesa_glsl_parse_state *state);
+
/**
* Abstract base class of visitors of IR instruction trees
*/