This is the mail archive of the
mailing list for the GCC project.
Re: -fwhopr and -flto options reorg
On Thu, Nov 11, 2010 at 3:38 PM, Jan Hubicka <firstname.lastname@example.org> wrote:
>> On Thu, Nov 11, 2010 at 3:22 PM, Jan Hubicka <email@example.com> wrote:
>> >> -flto=jobserv sounds confusing. ?-flto=auto? ?Somehow it sounds more
>> >> natural (to me) to make partition strategy an argument for -flto
>> >> instead of make the parallelism level.
>> > Well, I have no preferences here. ?We can have -flto=auto, but we want to get this
>> > from environment rendering spelling "jobserv" out redundant anyway.
>> > Because the mode needs only with "+" in the Makefile rule, perhaps making it jobserv
>> > rather than auto will drive users to actually read the docs and figure out they need
>> > Makefile update to get it working...
>> >> -flto=[none|balanced|....]
>> >> -flto-parallel=[n|auto]
>> > I think it makes omre sense to have -flto= to control parallelism since it is what
>> > user care about.
>> > -flto-partition is something we use for debugging so I do not care it is longer to
>> > type.
>> Ok -- I thought the partition scheme is related to scalability.
>> Besides, as you mentioned below, -flto-patitition=none has its special
> We have --param lto-partitions parameter for scalability.
> -flto-partition is used to specify either balanced (the default user wants to
> keep all the time), 1to1 for testsuite testing and none for compiling everything
> as one partition (and consequently disabling WHOPR, too)
Sounds like they should be switched? Internal options --> param, and
useful scalability parameter --> -f option ?
>> >> Does -flto imply -fwpa by default or not?
>> > -fwpa and -fltrans are used internaly to pass down the stage of WHOPR and -flto is WHOPR now
>> > unless you specify -flto-partition=none, so yes.
>> Why using partition option to control wpa or not? Is it better to use -fno-wpa?
> WPA is one of stages of WHOPR and we concluded that user wants to know nothing
> about that. ?So -fno-wpa to turn off whole WHOPR does not sound any more
> intuitive to users than -flto-partition=none.
> -fltrans and -fwpa are not user visible in any way since they are accepted only by
> lto1 frontend and supplied by plugin or collect2.
Ideally, WPA should be detected -- not asserted. For instance, if any
function referenced in the callgraph for the main program does not
have a IL (byte code) form, and that function is not one of the
standard library functions, wpa is then off. In such cases, there
are still some limited full program analysis that can be done with
linker feedback -- such as global variable address exposure analysis
-- also applies to shared library build for hidden symbols etc.
If partition=none means all files are LTOed together in memory, I fail
to understand why it implies wpa=off.
Another question, what is the default for parallelism? jobserv/auto?
or 1? For auto, is it the number of cores available?
>> > Honza