When optimizing allocations, only variables that had their address
taken somewhere in the program were marked as non-escaping.
There are several cases where non-addressed variables might cause
extra allocations.
From-SVN: r222640
if (var->is_variable())
{
- if (var->var_value()->is_address_taken())
- var->var_value()->set_does_not_escape();
+ var->var_value()->set_does_not_escape();
if (var->var_value()->init() != NULL
&& var->var_value()->init()->allocation_expression() != NULL)
{
alloc->set_allocate_on_stack();
}
}
- else if (var->is_result_variable()
- && var->result_var_value()->is_address_taken())
- var->result_var_value()->set_does_not_escape();
return TRAVERSE_CONTINUE;
}