Using /O1 causes about 20% reduction in the size of shell.exe but it is also about 10% slower on the V8 benchmark. Adding /Oi doesn't make much difference. Using /O2 and /Ox together with /GL (hole program optimization) gives the exact same size of shell.exe. /O2 it is. /Søren
On Thu, Oct 2, 2008 at 10:52 AM, Dean McNamee <[EMAIL PROTECTED]> wrote: > > Btw, I was curious, so I just looked at the difference between /O1 > (size) and /O2 (speed) and /Ox (full) > > /O1 (Minimize Size) /Og /Os /Oy /Ob2 /Gs /GF /Gy > > /O2 (Maximize Speed) /Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy > > So the difference is the addition of /Oi, and /Ot. The /Oi means > things like, you can generate rep scansb instructions instead of > strlen, and rep movsd/movsb instead of memcpy, etc. The /Ot means > favor speed over size. I am not so sure about that one. > > This is effectively the same as what we were doing with /Ox. I would > be interesting in seeing how /O1 compares? And also the combination > of /O1 + /Oi, which should give some good performance and a bit of > size cost. > > I think theoretically what we want is /O1, or /O1 /Oi, but we'd need > to look at the numbers of performance vs code size. > > Thanks > - dean > > On Thu, Oct 2, 2008 at 10:44 AM, <[EMAIL PROTECTED]> wrote: > > > > Reviewers: Christian Plesner Hansen, > > > > Description: > > Changed optimization from /Ox to the (more) commonly used /O2 (which > > includes > > /GF) in both SCons and Visual Studio build. There is not mesurable > > difference > > neither in speed nor in code size. > > > > Added whole program optimization to the SCons release build. This > > clutters the > > linking of the samples a little with the option /LTCG. This option is > > not > > strictly needed for linking, but if it is not specified the linker > > complaints > > as it can see object files compiled with /GL and then restarts itself > > with > > /LTCG which dosen't look very pretty. > > > > Please review this at http://codereview.chromium.org/5664 > > > > Affected files: > > M SConstruct > > M tools/visual_studio/release.vsprops > > > > > > Index: tools/visual_studio/release.vsprops > > =================================================================== > > --- tools/visual_studio/release.vsprops (revision 404) > > +++ tools/visual_studio/release.vsprops (working copy) > > @@ -7,7 +7,7 @@ > > <Tool > > Name="VCCLCompilerTool" > > RuntimeLibrary="0" > > - Optimization="3" > > + Optimization="2" > > InlineFunctionExpansion="2" > > EnableIntrinsicFunctions="true" > > FavorSizeOrSpeed="0" > > Index: SConstruct > > =================================================================== > > --- SConstruct (revision 404) > > +++ SConstruct (working copy) > > @@ -77,8 +77,9 @@ > > 'LINKFLAGS': ['/DEBUG'] > > }, > > 'mode:release': { > > - 'CCFLAGS': ['/Ox', '/MT', '/GF'], > > - 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'] > > + 'CCFLAGS': ['/O2', '/MT', '/GL'], > > + 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF', '/LTCG'], > > + 'ARFLAGS': ['/LTCG'] > > } > > } > > } > > @@ -205,8 +206,8 @@ > > 'LINKFLAGS': ['/MAP'] > > }, > > 'mode:release': { > > - 'CCFLAGS': ['/Ox', '/MT', '/GF'], > > - 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'] > > + 'CCFLAGS': ['/O2', '/MT'], > > + 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF', '/LTCG'] > > }, > > 'mode:debug': { > > 'CCFLAGS': ['/Od', '/MTd'], > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---