aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2011-02-17 16:18:24 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2011-02-17 16:18:24 +0000
commitbb7e6d55dac07daafb45645002be2798f78c87b2 (patch)
treea5366c0ffa8ef61e2d0da52de00aa6d5a7cf2871 /gcc/tree-sra.c
parentf181a8a73f8b1e0a36659eddcdd94f89ce897561 (diff)
downloadgcc-bb7e6d55dac07daafb45645002be2798f78c87b2.zip
gcc-bb7e6d55dac07daafb45645002be2798f78c87b2.tar.gz
gcc-bb7e6d55dac07daafb45645002be2798f78c87b2.tar.bz2
re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack)
PR debug/47106 PR debug/47402 * cfgexpand.c (account_used_vars_for_block): Remove. (estimated_stack_frame_size): Use referenced vars. * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced that were referenced in the original function. Test src_fn rather than cfun. Drop redundant get_var_ann. (setup_one_parameter): Drop redundant get_var_ann. (declare_return_variable): Likewise. (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn. (copy_arguments_for_versioning): Drop redundant get_var_ann. * ipa-inline.c (compute_inline_parameters): Do not compute disregard_inline_limits here. are not available. (compute_inlinable_for_current, pass_inlinable): New. (pass_inline_parameters): Require PROP_referenced_vars. * cgraphunit.c (cgraph_process_new_functions): Don't run compute_inline_parameters explicitly unless function is in SSA form. (cgraph_analyze_function): Set .disregard_inline_limits. * tree-sra.c (convert_callers): Compute inliner parameters only for functions already in SSA form. * g++.dg/debug/pr47106.C: New. Co-Authored-By: Jan Hubicka <jh@suse.cz> From-SVN: r170249
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 8ed8771..f28719f 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -4362,7 +4362,8 @@ convert_callers (struct cgraph_node *node, tree old_decl,
}
for (cs = node->callers; cs; cs = cs->next_caller)
- if (bitmap_set_bit (recomputed_callers, cs->caller->uid))
+ if (bitmap_set_bit (recomputed_callers, cs->caller->uid)
+ && gimple_in_ssa_p (DECL_STRUCT_FUNCTION (cs->caller->decl)))
compute_inline_parameters (cs->caller);
BITMAP_FREE (recomputed_callers);