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

@@ -1609,13 +1609,13 @@ typedef struct {
ATTRIBUTE_RETURNS_NONNULL static inline nir_block *
nir_start_block(nir_function_impl *impl)
{
return (nir_block *) impl->body.head;
return (nir_block *) impl->body.head_sentinel.next;
}
ATTRIBUTE_RETURNS_NONNULL static inline nir_block *
nir_impl_last_block(nir_function_impl *impl)
{
return (nir_block *) impl->body.tail_pred;
return (nir_block *) impl->body.tail_sentinel.prev;
}
static inline nir_cf_node *