diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2011-02-15 18:36:16 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2011-02-15 18:36:16 +0000 |
commit | 27c6b08686959f731523cb673db850bfd435795b (patch) | |
tree | 1b4083e3da8dae77376ffb0717557ef0a7be9e34 | |
parent | 679e81836971b405e643a8ba12ba084b76b15508 (diff) | |
download | gcc-27c6b08686959f731523cb673db850bfd435795b.zip gcc-27c6b08686959f731523cb673db850bfd435795b.tar.gz gcc-27c6b08686959f731523cb673db850bfd435795b.tar.bz2 |
re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack)
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.
From-SVN: r170185
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 2 | ||||
-rw-r--r-- | gcc/gimple-pretty-print.c | 2 | ||||
-rw-r--r-- | gcc/tree-dfa.c | 4 | ||||
-rw-r--r-- | gcc/tree-flow-inline.h | 2 | ||||
-rw-r--r-- | gcc/tree-flow.h | 2 | ||||
-rw-r--r-- | gcc/tree-into-ssa.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa.c | 2 |
8 files changed, 21 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc0d5ed..cc9ed6b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2011-02-15 Alexandre Oliva <aoliva@redhat.com> + + 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 <froydnj@codesourcery.com> * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 7b1c441..6fdb10d 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 cda0d16..747e8cd 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 05a682b..f37c30f 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 23eb3d8..538d6fe 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 e5642a0..e170037 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 c425586..5f6ea19 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 cc8c83d..a787f71 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) |