glsl: Separate overlapping sentinel nodes in exec_list.

I do appreciate the cleverness, but unfortunately it prevents a lot more
cleverness in the form of additional compiler optimizations brought on
by -fstrict-aliasing.

No difference in OglBatch7 (n=20).

Co-authored-by: Davin McCall <davmac@davmac.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Matt Turner
2016-06-27 14:42:57 -07:00
parent 5d76690f17
commit d1f6f65697
25 changed files with 165 additions and 137 deletions

View File

@@ -792,7 +792,7 @@ lower_packed_varyings(void *mem_ctx, unsigned locations_used,
lower_packed_varyings_gs_splicer splicer(mem_ctx, &new_instructions);
/* Add all the variables in first. */
main_func_sig->body.head->insert_before(&new_variables);
main_func_sig->body.get_head_raw()->insert_before(&new_variables);
/* Now update all the EmitVertex instances */
splicer.run(instructions);
@@ -803,7 +803,7 @@ lower_packed_varyings(void *mem_ctx, unsigned locations_used,
lower_packed_varyings_return_splicer splicer(mem_ctx, &new_instructions);
main_func_sig->body.head->insert_before(&new_variables);
main_func_sig->body.get_head_raw()->insert_before(&new_variables);
splicer.run(instructions);
@@ -816,7 +816,7 @@ lower_packed_varyings(void *mem_ctx, unsigned locations_used,
}
} else {
/* Shader inputs need to be lowered at the beginning of main() */
main_func_sig->body.head->insert_before(&new_instructions);
main_func_sig->body.head->insert_before(&new_variables);
main_func_sig->body.get_head_raw()->insert_before(&new_instructions);
main_func_sig->body.get_head_raw()->insert_before(&new_variables);
}
}