/** * Apply optimizations to the given program to eliminate unnecessary * instructions, temp regs, etc. */ void _mesa_optimize_program(GLcontext *ctx, struct gl_program *program) { if (1) _mesa_remove_dead_code(program); if (0) /* not tested much yet */ _mesa_remove_extra_moves(program); if (0) _mesa_consolidate_registers(program); else _mesa_reallocate_registers(program); }
/** * Apply optimizations to the given program to eliminate unnecessary * instructions, temp regs, etc. */ void _mesa_optimize_program(GLcontext *ctx, struct gl_program *program) { GLboolean any_change; /* Stop when no modifications were output */ do { any_change = GL_FALSE; _mesa_remove_extra_move_use(program); if (_mesa_remove_dead_code_global(program)) any_change = GL_TRUE; if (_mesa_remove_extra_moves(program)) any_change = GL_TRUE; if (_mesa_remove_dead_code_local(program)) any_change = GL_TRUE; _mesa_reallocate_registers(program); } while (any_change); }