Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 734006 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-6 / +7 lines)
Line  Link Here
0
-- a/gcc/ipa-prop.c
0
++ b/gcc/ipa-prop.c
Lines 3787-3797 update_indirect_edges_after_inlining (struct cgraph_edge *cs, Link Here
3787
3787
3788
      param_index = ici->param_index;
3788
      param_index = ici->param_index;
3789
      jfunc = ipa_get_ith_jump_func (top, param_index);
3789
      jfunc = ipa_get_ith_jump_func (top, param_index);
3790
      cgraph_node *spec_target = NULL;
3791
3790
3792
      /* FIXME: This may need updating for multiple calls.  */
3791
      auto_vec<cgraph_node *, 4> spec_targets;
3793
      if (ie->speculative)
3792
      for (cgraph_edge *direct = ie->first_speculative_call_target ();
3794
	spec_target = ie->first_speculative_call_target ()->callee;
3793
	direct;
3794
	direct = direct->next_speculative_call_target ())
3795
       spec_targets.safe_push (direct->callee);
3795
3796
3796
      if (!opt_for_fn (node->decl, flag_indirect_inlining))
3797
      if (!opt_for_fn (node->decl, flag_indirect_inlining))
3797
	new_direct_edge = NULL;
3798
	new_direct_edge = NULL;
Lines 3814-3820 update_indirect_edges_after_inlining (struct cgraph_edge *cs, Link Here
3814
3815
3815
      /* If speculation was removed, then we need to do nothing.  */
3816
      /* If speculation was removed, then we need to do nothing.  */
3816
      if (new_direct_edge && new_direct_edge != ie
3817
      if (new_direct_edge && new_direct_edge != ie
3817
	  && new_direct_edge->callee == spec_target)
3818
	  && spec_targets.contains (new_direct_edge->callee))
3818
	{
3819
	{
3819
	  new_direct_edge->indirect_inlining_edge = 1;
3820
	  new_direct_edge->indirect_inlining_edge = 1;
3820
	  top = IPA_EDGE_REF (cs);
3821
	  top = IPA_EDGE_REF (cs);

Return to bug 734006