http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51012

--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> 
2011-11-08 13:50:44 UTC ---
On Tue, 8 Nov 2011, jamborm at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51012
> 
> --- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-11-08 
> 13:06:29 UTC ---
> (In reply to comment #2)
> > 
> > What about WPA stage?  I think we don't "fixup" inlinable status of
> > edges at the beginning of ltrans (or inline transform).  Do we?
> 
> No.  And unless this got addressed meanwhile, we don't need indirect
> inlining to hit this bug with LTO (I belive
> https://bugzilla.mozilla.org/show_bug.cgi?id=652563 is a manifestation
> of this problem).  IIRC, Honza had plausible reasons why un-doing
> inlining decisions is tough but we eventually either need that or
> store types of arguments along each call graph edge.

I understand its 'though' because we possibly have thrown away
the offline copy already before committing inline decisions?
But - can't we simply materialize the clone?  (of course that
would be possibly many clones...)

Note that with LTO symbol merging even direct calls may become
un-inlinable (because they change to an incompatible signature).

Note that the idea to _not_ inline in those cases is motivated
to behave exactly the same as if we'd not inline for such
undefined code.  We could certainly fix this up during inlining
itself - as last resort with going through a memory temporary
(ugh).  But we for sure will behave differently than the target
machine for simple integer mode mismatches (note that what we see
on gimple doesn't really reflect the target ABI or what we would
see on RTL ...)

Reply via email to