This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/64835] -fno-ipa-cp is inconsitently supported when attributes optimize or target are used


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64835

--- Comment #5 from chrbr at gcc dot gnu.org ---
(In reply to Martin Jambor from comment #1)
> The problem is that in the testcase iinline-1.c as it is in the
> testsuite, we use -fno-ipa-cp on the command line so that the
> interprocedural phase of IPA-CP is not run so that it does not
> interfere with the interprocedural stage of inlining, which however
> uses information gathered by the function body analysis of ipa-prop
> (which is invoked by both IPA-CP and inlining).  However, when we
> inspect the function specific optimizations in ipa-prop at this stage,
> we bail out if we see -fno-ipa-cp.
> 
> So yes, there is a clear inconsistency, but at the same time, having
> the ability to switch off only the interprocedural part of IPA-CP is
> extremely convenient for testing how the inliner uses jump functions
> and other stuff gathered by ipa-prop.  I'll try to come up with some
> fix.

Hi Martin,

back to fixing this problem, after the initial set of patch I think the
function

static bool
ipa_func_spec_opts_forbid_analysis_p (struct cgraph_node *node)
{
  tree fs_opts = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (node->decl);

  if (!fs_opts)
    return false;
  return !opt_for_fn (node->decl, optimize) || !opt_for_fn (node->decl, 
flag_ipa_cp);
}

should always return false, and have a coherent analysis between global
optimizations and function specific optimizations, now that the ipa-inline
checks are fixed.

so testing this. seems to fix the testcase at first sight.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]