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: GCC Intermodule Analysis for Go


Matt Davis <mattdavis9@gmail.com> writes:

> I have been working on my PhD thesis and I want to focus on the Go
> language.  I know Ian Taylor has done tons of work regarding the Go
> frontend for gcc.  Likewise, I know gcc implements SSA and even
> link-time optimization.  For my specific research I will need to do
> some intermodule analysis.  I know gcc has link-time optimization,
> however I might, for my purposes, need to add additional information
> to the object files that would allow my specific optimization of a Go
> program to aid other compiled modules/translation-units.  Ideally, my
> implementation, I would hope, would translate nice to gogo then to
> GIMPLE.  In the short term I would like to use this intermodule
> analysis to give enough information to the compiler so that when a
> module/object-file is  recompiled the changed routines and dependent
> routines would be the only aspects recompiled, instead of having to
> recompile an entire object file each time a small change is made.
>
> Thoughts?  Is this even feasible?

I think the frontend work is entirely feasible in Go.

It would be difficult to do entirely correctly in C++ because of the
complex name lookup rules.  But Go has simple name lookup, so
identifying which parts of a program depends on which other parts should
be more or less straightforward.

As far as translating the information to GIMPLE, and taking advantage of
it in the optimizers, it kind of depends on what kind of information you
are thinking about.

Ian


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