r300/compiler: Enable reg rename pass on r500 and run it before optimizations
authorTom Stellard <tstellar@gmail.com>
Sat, 14 May 2011 06:29:50 +0000 (23:29 -0700)
committerTom Stellard <tstellar@gmail.com>
Sat, 15 Oct 2011 01:30:14 +0000 (18:30 -0700)
The scheduler and the register allocator are now smart enough to handle
it.

src/gallium/drivers/r300/compiler/r3xx_fragprog.c

index bb6c010e8e3e2959832a008fda0f34ac7104cf52..70354ab8164413a8f5d29aa748e9e366755d9804 100644 (file)
@@ -144,13 +144,10 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
                {"native rewrite",              1, !is_r500,    rc_local_transform,             native_rewrite_r300},
                {"deadcode",                    1, opt,         rc_dataflow_deadcode,           dataflow_outputs_mark_use},
                {"emulate loops",               1, !is_r500,    rc_emulate_loops,               NULL},
+               {"register rename",             1, !is_r500 || opt,             rc_rename_regs,                 NULL},
                {"dataflow optimize",           1, opt,         rc_optimize,                    NULL},
                {"dataflow swizzles",           1, 1,           rc_dataflow_swizzles,           NULL},
                {"dead constants",              1, 1,           rc_remove_unused_constants,     &c->code->constants_remap_table},
-               /* This pass makes it easier for the scheduler to group TEX
-                * instructions and reduces the chances of creating too
-                * many texture indirections.*/
-               {"register rename",             1, !is_r500,    rc_rename_regs,                 NULL},
                {"pair translate",              1, 1,           rc_pair_translate,              NULL},
                {"pair scheduling",             1, 1,           rc_pair_schedule,               NULL},
                {"dead sources",                1, 1,           rc_pair_remove_dead_sources, NULL},