if(targets_overlap(i->first, assign.target))
i->second->blocked = true;
if(targets_overlap(i->first, assign.target))
i->second->blocked = true;
ExpressionInfo &info = expressions.back();
info.target = assign.target;
// Self-referencing assignments can't be inlined without additional work.
ExpressionInfo &info = expressions.back();
info.target = assign.target;
// Self-referencing assignments can't be inlined without additional work.
analyze and non-trivial expressions could be expensive to inline. */
if((current_block->parent || (constant && r_trivial)) && var.interface.empty())
{
analyze and non-trivial expressions could be expensive to inline. */
if((current_block->parent || (constant && r_trivial)) && var.interface.empty())
{
ExpressionInfo &info = expressions.back();
info.target = &var;
/* Assume variables declared in an iteration initialization statement
ExpressionInfo &info = expressions.back();
info.target = &var;
/* Assume variables declared in an iteration initialization statement
{
stage.content.visit(*this);
NodeRemover().apply(stage, nodes_to_remove);
{
stage.content.visit(*this);
NodeRemover().apply(stage, nodes_to_remove);
AssignmentInfo &assign_info = assignments.back();
assign_info.node = &node;
assign_info.target = target;
AssignmentInfo &assign_info = assignments.back();
assign_info.node = &node;
assign_info.target = target;