r300/compiler: use peephole and constant folding for vertex shaders too
authorMarek Olšák <maraeo@gmail.com>
Wed, 1 Sep 2010 03:25:34 +0000 (05:25 +0200)
committerMarek Olšák <maraeo@gmail.com>
Sat, 4 Sep 2010 16:56:21 +0000 (18:56 +0200)
src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c

index 4aed9ddd2160ee852a9a80f9bd2fc09d4306d567..8c3177f1f2673eaebbd2a1b084bec25d9884f704 100644 (file)
@@ -1013,8 +1013,10 @@ void r3xx_compile_vertex_program(struct r300_vertex_program_compiler *c)
                {"native rewrite",              1, is_r500,     rc_local_transform,             alu_rewrite_r500},
                {"native rewrite",              1, !is_r500,    rc_local_transform,             alu_rewrite_r300},
                {"emulate modifiers",           1, !is_r500,    rc_local_transform,             emulate_modifiers},
-               {"source conflict resolve",     1, 1,           rc_local_transform,             resolve_src_conflicts},
                {"deadcode",                    1, 1,           rc_dataflow_deadcode,           dataflow_outputs_mark_used},
+               {"dataflow optimize",           1, 1,           rc_optimize,                    NULL},
+               /* This pass must be done after optimizations. */
+               {"source conflict resolve",     1, 1,           rc_local_transform,             resolve_src_conflicts},
                {"dataflow swizzles",           1, 1,           rc_dataflow_swizzles,           NULL},
                {"register allocation",         1, 1,           allocate_temporary_registers,   NULL},
                {"dead constants",              1, kill_consts, rc_remove_unused_constants,     &c->code->constants_remap_table},