This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: TREE_ADDRESSABLE problem
> On Thu, Nov 20, 2003 at 12:29:27AM +0100, Jan Hubicka wrote:
> > Somehow we manage to save copy of the original unoptimized bar for
> > in-lining, but we manage to not save the variables. Very odd. I didn't
> > know we are donig something like that...
>
> Hum. It appears tree_rest_of_compilation is using the wrong
> routine to make copies of the function. We need to use something
> more like copy_body, except that routine is private to tree-inline.c,
> and has the wrong interface.
We probably can massage things so the copying happens during inlining,
but I am not quite sure how to reach this..
>
> Incidentally, this is something that cgraph could help out with.
> If we knew that we had already inlined all copies that are going
> to be inlined, then we wouldn't need to make a copy.
cgraph_function_possibly_inlined_p does approximately that. When the
function is inlined, we always expand it before inlining due to
toplogical sorting, so this function is not even too conservative.
Perhaps I can pay more attention to the order so I do topological
sorting and then attempt to move inlined functions past their inline
copies, but I am not sure this is worthwhile as the function returns
false for all big functions where this matters.
It is getting late here, so I won't fix the bug today and probably
neighter tomorrow as I am leaving for a trip... I won't mind if someone
beats me :)
Honza
>
>
>
> r~