glsl: Skip processing the first function's body in do_dead_functions().
It can't call anything, so there's no point.
This commit is contained in:
@@ -50,6 +50,7 @@ public:
|
||||
ir_dead_functions_visitor()
|
||||
{
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->seen_another_function_signature = false;
|
||||
}
|
||||
|
||||
~ir_dead_functions_visitor()
|
||||
@@ -64,6 +65,8 @@ public:
|
||||
|
||||
bool (*predicate)(ir_instruction *ir);
|
||||
|
||||
bool seen_another_function_signature;
|
||||
|
||||
/* List of signature_entry */
|
||||
exec_list signature_list;
|
||||
void *mem_ctx;
|
||||
@@ -94,7 +97,13 @@ ir_dead_functions_visitor::visit_enter(ir_function_signature *ir)
|
||||
entry->used = true;
|
||||
}
|
||||
|
||||
|
||||
/* If this is the first signature to look at, no need to descend to see
|
||||
* if it has calls to another function signature.
|
||||
*/
|
||||
if (!this->seen_another_function_signature) {
|
||||
this->seen_another_function_signature = true;
|
||||
return visit_continue_with_parent;
|
||||
}
|
||||
|
||||
return visit_continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user