This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 7/7] Plug ipa-prop escape analysis into gimple_call_arg_flags
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>
- Date: Thu, 22 May 2014 17:24:33 +0200
- Subject: Re: [PATCH 7/7] Plug ipa-prop escape analysis into gimple_call_arg_flags
- Authentication-results: sourceware.org; auth=none
- References: <20140521131634 dot 178838544 at virgil dot suse dot cz> <20140521131634 dot 646352575 at virgil dot suse dot cz> <CAFiYyc3m-NLuKYcA65WKrONJsimRkrqPSN8XN5bRg99RTG9_jw at mail dot gmail dot com> <20140522124952 dot GA13095 at virgil dot suse> <CAFiYyc3FXT0VNQDst=Q8rZ5Y1+vNwhgGHcoJFMdfz6dbVV1OjQ at mail dot gmail dot com>
>
> Can we? If the body is not readily available we only have decl and
> cgraph-node, not struct function.
>
> I suppose we could exchange the struct function pointer in
> tree_function_decl for a cgraph_node pointer and put
> the struct function pointer into the cgraph_node.
>
> Of course that may have impacts on FEs who might create
> struct function before creating a cgraph node. But at least
> it would avoid enlarging FUNCTION_DECL.
>
> In the end most of the tree_decl_with_vis stuff should move over to symtab
> and var-decls should get a varpool_node pointer as well.
>
> Back to the call flags stuff - I also meant the representation of the
> "fn spec" attribute. Rather than parsing that again and again move
> it to a better place (which you seem to invent?) and better unified
> representation.
>
> Can you try if removing the cgraph hash is possible with the
> struct function pointer idea?
It won't be so easy, because struct function is really built at relatively convoluted
places within frontend before cgraph node is assigned to them (I tried that few years
back).
I think we may be on better track moving DECL_ASSEMBLER_NAME that is calculated later,
but then we have problem with DECL_ASSEMBLER_NAME being set for assembler names and
const decls, too that still go around symtab.
Given that decl_assembler_name is a function, I suppose we could go with extra conditoinal
in there.
Getting struct function out of frontend busyness would be nice indeed, too, but probably
should be independent of Martin's work here.
Honza
>
> Thanks,
> Richard.
>
> > Thanks,
> >
> > Martin
> >
> >>
> >> > + }
> >> > }
> >> > +
> >> > + return ret;
> >> > }
> >> >
> >> > /* Detects return flags for the call STMT. */
> >> >