This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/64835] -fno-ipa-cp is inconsitently supported when attributes optimize or target are used
- From: "chrbr at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 30 Apr 2015 13:55:59 +0000
- Subject: [Bug target/64835] -fno-ipa-cp is inconsitently supported when attributes optimize or target are used
- Auto-submitted: auto-generated
- References: <bug-64835-4 at http dot gcc dot gnu dot org/bugzilla/>
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.