This is the mail archive of the 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: IPA and LTO

What you say is in line with my understanding, however when I instrument the
execute function of ipa-function-and-variable-visibility
(local_function_and_variable_visibility()) I note that:

gcc -flto a.c b.c
causes the pass to be called twice (presumably once per file).

If I split the compilation into two stages, then in the link stage
gcc -flto a.o b.o
the pass is never called.

Conversely, the gate of IPA-Points-to does seem to be called three times at
link time (presumably once for each file and then once for all together).  I
cannot discover the cause of the different behaviours here.

Diego Novillo-3 wrote:
> On Wed, Jul 13, 2011 at 10:22, AJM-2 <> wrote:
>> My question is whether LTO can be used in this way, to have a simple ipa
>> pass called once at link time with access to the function bodies, and if
>> so
>> how is this achieved? Âcgraph_function_body_availability seems to only be
>> half the story.
> Yes, it can.  You seem to be describing what GCC calls "simple IPA
> pass".  These are passes that cannot run in partitioned LTO mode, as
> they require the function bodies to operate.  Look for passes like
> pass_ipa_function_and_variable_visibility for an example of a simple
> IPA pass.
> Diego.

View this message in context:
Sent from the gcc - Dev mailing list archive at

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