8

What's the difference between the /Ot flag ("favor fast code") and the /O2 flag ("maximize speed")?

(Ditto with /Os and /O1.)

Cody Gray - on strike
  • 239,200
  • 50
  • 490
  • 574
user541686
  • 205,094
  • 128
  • 528
  • 886
  • 1
    Next you'll want to know the answer to this: [What is the difference between the /Ox and /O2 compiler options?](http://stackoverflow.com/questions/5063334/what-is-the-difference-between-the-ox-and-o2-compiler-options) ;-) – Cody Gray - on strike May 15 '11 at 08:58

3 Answers3

10

/O1 and /O2 bundle together a number of options aimed at a larger goal. So /O1 makes a number of code generation choices that favour size; /O2 does the same thing and favours speed.

/O1 includes /Os as well as other options. /O2 includes /Ot as well as other options. Some optimisations are enabled by both /O1 and /O2. And, depending on your program's paging behaviour, /O1 (size) can result in faster speed than /O2 if paging code comes to dominate your perf over instruction execution cost.

A good short summary of the impact of /O1 and /O2 in VC++ 2010 is here

http://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx

and includes links for other versions of VC.

Martyn

Martyn Lovell
  • 2,086
  • 11
  • 13
  • Thanks for the response, but a question: So what happens if I put `/O1` with `/Ot`? Is it favoring size or speed? – user541686 May 15 '11 at 08:53
  • If you put /O1 and then /Ot in that order (and no subsequent options or pragmas), you get all the other options in O1 and /Os from /O1 is removed and /Ot replaces it. What you then get is a hybrid of size and speed optimisations. – Martyn Lovell May 15 '11 at 08:55
2

See the /O1, /O2 (Minimize Size, Maximize Speed) article at MSDN.

It states that /O2 is equivalent to:

/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy

So /O2 enables all the things that /Ot does, and some more. Same thing for /O1 vs. /Os, but for size this time.

Mat
  • 202,337
  • 40
  • 393
  • 406
0

No difference. /Ot is a part of the /O2 optimizations.

http://msdn.microsoft.com/en-us/library/f9534wye.aspx

Bo Persson
  • 90,663
  • 31
  • 146
  • 203