This is the mail archive of the gcc@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]

Re: Beginner's question:Are there any inter-procedural optimization in GCC backend ?


Andrew Haley <aph@redhat.com> writes:

| Gabriel Dos Reis writes:
|  > Andrew Haley <aph@redhat.com> writes:
|  > 
|  > | Gabriel Dos Reis writes:
|  > |  > Jim Wilson <wilson@specifixinc.com> writes:
|  > |  > 
|  > |  > | We do have function inlining in RTL, and this has been around for a
|  > |  > | long time, but this is on the way out, because RTL is too low level
|  > |  > | for this optimization.  It is being replaced with a tree level
|  > |  > | function inliner. The RTL function inliner is in integrate.c.
|  > |  > 
|  > |  > Hmm, it has been my understanding thta the tree-inliner will not
|  > |  > (automatically) have us throw away the RTL-inliner.
|  > | 
|  > | In addition to Jim's comments: once inlining has been done at tree
|  > | level, there will be few opportunities to do more inlining.
|  > 
|  > This is another postulate.
| 
| No it isn't: it's the demonstrable fact that once we have inlined a
| function we can't inline it again.  

If you have inlined a function f() into g(), sure you won't inline f()
again. Sure.  But that was not my point.

My point was whether after various optimizations applied to g(), the
resulting function would be a good candidate for integration into
its callers.  Your assertation is not a demonstrable fact as far as
that is concerned.

-- Gaby


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