On Wed, Oct 03, 2012 at 11:26:09AM -0700, Dehao Chen wrote:
> @@ -6340,6 +6341,20 @@ move_block_to_fn (struct function *dest_cfun, basi
> SET_USE (use, replace_ssa_name (op, d->vars_map, dest_cfun->decl));
> }
>
> + for (i = 0; i < EDGE_COUNT (bb->preds); i++)
> + {
> + location_t locus = gimple_phi_arg_location (phi, i);
> + if (locus != UNKNOWN_LOCATION)
> + {
> + tree block = LOCATION_BLOCK (locus);
> + if (d->orig_block == NULL_TREE
|| block == d->orig_block)
> + gimple_phi_arg_set_location (phi, i, d->new_block ?
> + COMBINE_LOCATION_DATA (line_table, locus, d->new_block) :
> + LOCATION_LOCUS (locus));
> + }
> + }
> +
The formatting is wrong on this. ? and : would need to go to the next line
and even the indentation of part of an argument is weird.
IMHO better just do:
if (d->orig_block == NULL_TREE || block == d->orig_block)
{
if (d->new_block)
locus = COMBINE_LOCATION_DATA (line_table, locus,
d->new_block);
else
locus = LOCATION_LOCUS (locus);
gimple_phi_arg_set_location (phi, i, locus);
}
It will be far more readable.
And/or to decrease indentation level you could do
if (locus == UNKNOWN_LOCATION)
continue;
block = LOCATION_BLOCK (locus);
...
Jakub