Add a constant folding optimization pass.
diff --git a/glsl_parser_extras.cpp b/glsl_parser_extras.cpp
index eb19ed7..84a3fd9 100644
--- a/glsl_parser_extras.cpp
+++ b/glsl_parser_extras.cpp
@@ -34,6 +34,7 @@
#include "ast.h"
#include "glsl_parser_extras.h"
#include "glsl_parser.h"
+#include "ir_constant_folding.h"
#include "ir_print_visitor.h"
void
@@ -647,6 +648,16 @@
_mesa_ast_to_hir(&instructions, &state);
+ /* Optimization passes */
+ if (!state.error) {
+ /* Constant folding */
+ foreach_iter(exec_list_iterator, iter, instructions) {
+ ir_constant_folding_visitor v;
+ ((ir_instruction *)iter.get())->accept(& v);
+ }
+ }
+
+ /* Print out the resulting IR */
printf("\n\n");
if (!state.error) {