Re: Question about default optimizations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21 November 2015 at 21:32, staticx wrote:
> Hi all,
>
> I am implementing a generator of optimization sequences for GCC 4.8.4. The
> Generator use an evolutionary algorithm to evolve a list of optimization
> sequences like acovea (http://hg.ahs3.net/acovea/debian/html/acoveaga.html)
> The list of optimizations I have to chosen to evolve are the flags that can
> be turned on or off in each of the standard GCC levels 01 to O3 and Ofast
> (around 78 flags).
>
> I ve read that "most optimizations are only enabled if an -O level is set on
> the
> command line. Otherwise they are disabled, even if individual optimization
> flags are specified"
>
> So if I have a list of generated sequences, How can I add default
> optimizations?

What do you mean by default optimizations?

> O1 + <generated_sequence_1> == O2 + <generated_sequence_1> == O3 +
> <generated_sequence_1> ???

That doesn't make any sense, did you mean to say generated_sequence_2
and generated_sequence_3, instead of the same one three times?

> If not, how can I tell GCC to run default optimizations in addition to my
> generated flags.

I don't think I understand what you're asking, but maybe the answer is
"use one of the -On options".

The optimisation flags have negative forms as well as positive (but
you know that, because you've read the docs carefully now, right?) So
you can say "-O1 -ffoo -fbar" or you can say "-O2 -fno-foo -fno-bar".
So by using -O2 you would enable any optimizations that are part of
-O2 but don't have their own -f flag (I don't know if such
optimizations exist, I'm just speculating based on
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html which says
"Not all optimizations are controlled directly by a flag. Only
optimizations that have a flag are listed in this section.")




> NB:
> In acovea, they said "Each initial population is a set of randomly-selected
> acovea_organisms. I also "seed" each population with predefined organisms
> that represent the "composite" optimization options -O1, -O2, -O3, and -Os.
> That way, I ensure that the default settings get a chance to compete with
> random option sets"
>
> How did they define  the "composite" optimization options ?

Why are you asking that here? Acovea was a separate project, you
should ask the people who worked on it, or read their documentation
and/or code.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux