summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/ir_function.cpp
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2016-06-27 14:42:57 -0700
committerMatt Turner <[email protected]>2016-07-26 12:12:27 -0700
commitd1f6f656973a2e18641441e3c97b30799a82de52 (patch)
tree9865209c0ac9013e682cde4862ed254a3e1c9a68 /src/compiler/glsl/ir_function.cpp
parent5d76690f170de9acc541aa6b4a507ccd20a78158 (diff)
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 <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/compiler/glsl/ir_function.cpp')
-rw-r--r--src/compiler/glsl/ir_function.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/glsl/ir_function.cpp b/src/compiler/glsl/ir_function.cpp
index c0b62af11a9..3aeba8119a7 100644
--- a/src/compiler/glsl/ir_function.cpp
+++ b/src/compiler/glsl/ir_function.cpp
@@ -43,8 +43,8 @@ static parameter_list_match_t
parameter_lists_match(_mesa_glsl_parse_state *state,
const exec_list *list_a, const exec_list *list_b)
{
- const exec_node *node_a = list_a->head;
- const exec_node *node_b = list_b->head;
+ const exec_node *node_a = list_a->get_head_raw();
+ const exec_node *node_b = list_b->get_head_raw();
/* This is set to true if there is an inexact match requiring an implicit
* conversion. */
@@ -222,9 +222,9 @@ is_best_inexact_overload(const exec_list *actual_parameters,
if (*other == sig)
continue;
- const exec_node *node_a = sig->parameters.head;
- const exec_node *node_b = (*other)->parameters.head;
- const exec_node *node_p = actual_parameters->head;
+ const exec_node *node_a = sig->parameters.get_head_raw();
+ const exec_node *node_b = (*other)->parameters.get_head_raw();
+ const exec_node *node_p = actual_parameters->get_head_raw();
bool better_for_some_parameter = false;
@@ -368,8 +368,8 @@ ir_function::matching_signature(_mesa_glsl_parse_state *state,
static bool
parameter_lists_match_exact(const exec_list *list_a, const exec_list *list_b)
{
- const exec_node *node_a = list_a->head;
- const exec_node *node_b = list_b->head;
+ const exec_node *node_a = list_a->get_head_raw();
+ const exec_node *node_b = list_b->get_head_raw();
for (/* empty */
; !node_a->is_tail_sentinel() && !node_b->is_tail_sentinel()