diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc0d5eddf36..cc9ed6b09fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2011-02-15 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-flow.h (referenced_var_lookup): Add fn parameter. + Adjust all callers. + * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun. + * tree-flow-inline.h: Adjust. + * gimple-pretty-print.c: Adjust. + * tree-into-ssa.c: Adjust. + * tree-ssa.c: Adjust. + * cfgexpand.c: Adjust. + 2011-02-15 Nathan Froyd * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 7b1c441b966..6fdb10d2507 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -520,7 +520,7 @@ update_alias_info_with_stack_vars (void) for -O0 where we are preserving even unreferenced variables. */ gcc_assert (DECL_P (decl) && (!optimize - || referenced_var_lookup (DECL_UID (decl)))); + || referenced_var_lookup (cfun, DECL_UID (decl)))); bitmap_set_bit (part, uid); *((bitmap *) pointer_map_insert (decls_to_partitions, (void *)(size_t) uid)) = part; diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c index cda0d169946..747e8cd404f 100644 --- a/gcc/gimple-pretty-print.c +++ b/gcc/gimple-pretty-print.c @@ -542,7 +542,7 @@ pp_points_to_solution (pretty_printer *buffer, struct pt_solution *pt) pp_string (buffer, "{ "); EXECUTE_IF_SET_IN_BITMAP (pt->vars, 0, i, bi) { - tree var = referenced_var_lookup (i); + tree var = referenced_var_lookup (cfun, i); if (var) { dump_generic_node (buffer, var, 0, dump_flags, false); diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index 05a682b0a4b..f37c30fc2c1 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -488,12 +488,12 @@ find_referenced_vars_in (gimple stmt) variable. */ tree -referenced_var_lookup (unsigned int uid) +referenced_var_lookup (struct function *fn, unsigned int uid) { tree h; struct tree_decl_minimal in; in.uid = uid; - h = (tree) htab_find_with_hash (gimple_referenced_vars (cfun), &in, uid); + h = (tree) htab_find_with_hash (gimple_referenced_vars (fn), &in, uid); return h; } diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index 23eb3d826de..538d6fe678f 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -103,7 +103,7 @@ next_htab_element (htab_iterator *hti) static inline tree referenced_var (unsigned int uid) { - tree var = referenced_var_lookup (uid); + tree var = referenced_var_lookup (cfun, uid); gcc_assert (var || uid == 0); return var; } diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index e5642a0fbe3..e1700375cce 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -319,7 +319,7 @@ typedef struct !end_referenced_vars_p (&(ITER)); \ (VAR) = next_referenced_var (&(ITER))) -extern tree referenced_var_lookup (unsigned int); +extern tree referenced_var_lookup (struct function *, unsigned int); extern bool referenced_var_check_and_insert (tree); #define num_referenced_vars htab_elements (gimple_referenced_vars (cfun)) diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index c425586a156..5f6ea19fc7c 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -1469,7 +1469,7 @@ dump_decl_set (FILE *file, bitmap set) EXECUTE_IF_SET_IN_BITMAP (set, 0, i, bi) { - tree var = referenced_var_lookup (i); + tree var = referenced_var_lookup (cfun, i); if (var) print_generic_expr (file, var, 0); else diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index cc8c83d7c00..a787f710360 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1930,7 +1930,7 @@ maybe_optimize_var (tree var, bitmap addresses_taken, bitmap not_reg_needs) /* If the variable is not in the list of referenced vars then we do not need to touch it nor can we rename it. */ - if (!referenced_var_lookup (DECL_UID (var))) + if (!referenced_var_lookup (cfun, DECL_UID (var))) return false; if (TREE_ADDRESSABLE (var)