mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 19:30:12 +01:00
glsl: Fold implementation of ir_dereference_record::constant_referenced into wrapper
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
b66319b006
commit
35bf94f901
1 changed files with 21 additions and 17 deletions
|
|
@ -412,10 +412,27 @@ constant_referenced(const ir_dereference *deref,
|
|||
store, offset);
|
||||
break;
|
||||
|
||||
case ir_type_dereference_record:
|
||||
((ir_dereference_record *) deref)->constant_referenced(variable_context,
|
||||
store, offset);
|
||||
case ir_type_dereference_record: {
|
||||
const ir_dereference_record *const dr =
|
||||
(const ir_dereference_record *) deref;
|
||||
|
||||
const ir_dereference *const deref = dr->record->as_dereference();
|
||||
if (!deref)
|
||||
break;
|
||||
|
||||
ir_constant *substore;
|
||||
int suboffset;
|
||||
|
||||
if (!constant_referenced(deref, variable_context, substore, suboffset))
|
||||
break;
|
||||
|
||||
/* Since we're dropping it on the floor...
|
||||
*/
|
||||
assert(suboffset == 0);
|
||||
|
||||
store = substore->get_record_field(dr->field);
|
||||
break;
|
||||
}
|
||||
|
||||
case ir_type_dereference_variable: {
|
||||
const ir_dereference_variable *const dv =
|
||||
|
|
@ -493,20 +510,7 @@ void
|
|||
ir_dereference_record::constant_referenced(struct hash_table *variable_context,
|
||||
ir_constant *&store, int &offset) const
|
||||
{
|
||||
ir_constant *substore;
|
||||
int suboffset;
|
||||
const ir_dereference *deref = record->as_dereference();
|
||||
if (!deref) {
|
||||
store = 0;
|
||||
offset = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!::constant_referenced(deref, variable_context, substore, suboffset))
|
||||
return;
|
||||
|
||||
store = substore->get_record_field(field);
|
||||
offset = 0;
|
||||
::constant_referenced(this, variable_context, store, offset);
|
||||
}
|
||||
/*@}*/
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue