|
|
@@ -218,26 +218,7 @@ compile_shader(struct gl_context *ctx, struct gl_shader *shader) |
|
|
|
if (!state->error && !shader->ir->is_empty()) { |
|
|
|
bool progress; |
|
|
|
do { |
|
|
|
progress = false; |
|
|
|
|
|
|
|
progress = do_function_inlining(shader->ir) || progress; |
|
|
|
progress = do_if_simplification(shader->ir) || progress; |
|
|
|
progress = do_copy_propagation(shader->ir) || progress; |
|
|
|
progress = do_dead_code_local(shader->ir) || progress; |
|
|
|
progress = do_dead_code_unlinked(shader->ir) || progress; |
|
|
|
progress = do_tree_grafting(shader->ir) || progress; |
|
|
|
progress = do_constant_propagation(shader->ir) || progress; |
|
|
|
progress = do_constant_variable_unlinked(shader->ir) || progress; |
|
|
|
progress = do_constant_folding(shader->ir) || progress; |
|
|
|
progress = do_algebraic(shader->ir) || progress; |
|
|
|
progress = do_vec_index_to_swizzle(shader->ir) || progress; |
|
|
|
progress = do_vec_index_to_cond_assign(shader->ir) || progress; |
|
|
|
progress = do_swizzle_swizzle(shader->ir) || progress; |
|
|
|
|
|
|
|
loop_state *ls = analyze_loop_variables(shader->ir); |
|
|
|
progress = set_loop_controls(shader->ir, ls) || progress; |
|
|
|
progress = unroll_loops(shader->ir, ls, 32) || progress; |
|
|
|
delete ls; |
|
|
|
progress = do_common_optimization(shader->ir, false, 32); |
|
|
|
} while (progress); |
|
|
|
|
|
|
|
validate_ir_tree(shader->ir); |