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) {