Are you guys sensitive to efficiency?

Are you guys sensitive to efficiency?
what do you think about the -O2 mode? which mode do you prefer?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
`-O ' 
`-O1 ' 
                Optimize.      Optimizing   compilation   takes   somewhat   more   time,   and   a 
                lot   more   memory   for   a   large   function. 
  
                With   `-O ',   the   compiler   tries   to   reduce   code   size   and   execution 
                time,   without   performing   any   optimizations   that   take   a   great   deal 
                of   compilation   time. 
  
                `-O '   turns   on   the   following   optimization   flags: 
                               -fdefer-pop    
                               -fdelayed-branch    
                               -fguess-branch-probability    
                               -fcprop-registers    
                               -floop-optimize    
                               -fif-conversion    
                               -fif-conversion2    
                               -ftree-ccp    
                               -ftree-dce    
                               -ftree-dominator-opts    
                               -ftree-dse    
                               -ftree-ter    
                               -ftree-lrs    
                               -ftree-sra    
                               -ftree-copyrename    
                               -ftree-fre    
                               -ftree-ch    
                               -funit-at-a-time    
                               -fmerge-constants 
  
                `-O '   also   turns   on   `-fomit-frame-pointer '   on   machines   where   doing 
                so   does   not   interfere   with   debugging. 
  
                `-O '   doesn 't   turn   on   `-ftree-sra '   for   the   Ada   compiler.      This 
                option   must   be   explicitly   specified   on   the   command   line   to   be 
                enabled   for   the   Ada   compiler. 
  
`-O2 ' 
                Optimize   even   more.      GCC   performs   nearly   all   supported 
                optimizations   that   do   not   involve   a   space-speed   tradeoff.      The 
                compiler   does   not   perform   loop   unrolling   or   function   inlining   when 
                you   specify   `-O2 '.      As   compared   to   `-O ',   this   option   increases 
                both   compilation   time   and   the   performance   of   the   generated   code. 
  
                `-O2 '   turns   on   all   optimization   flags   specified   by   `-O '.      It   also 
                turns   on   the   following   optimization   flags: 
                               -fthread-jumps    
                               -fcrossjumping    
                               -foptimize-sibling-calls    
                               -fcse-follow-jumps      -fcse-skip-blocks    
                               -fgcse      -fgcse-lm       
                               -fexpensive-optimizations    
                               -fstrength-reduce    
                               -frerun-cse-after-loop      -frerun-loop-opt    
                               -fcaller-saves    
                               -fpeephole2    
                               -fschedule-insns      -fschedule-insns2    
                               -fsched-interblock      -fsched-spec    
                               -fregmove    
                               -fstrict-aliasing    
                               -fdelete-null-pointer-checks    
                               -freorder-blocks      -freorder-functions    
                               -falign-functions      -falign-jumps    
                               -falign-loops      -falign-labels    
                               -ftree-vrp    
                               -ftree-pre 
  
                Please   note   the   warning   under   `-fgcse '   about   invoking   `-O2 '   on 
                programs   that   use   computed   gotos. 
  
`-O3 ' 
                Optimize   yet   more.      `-O3 '   turns   on   all   optimizations   specified   by 
                `-O2 '   and   also   turns   on   the   `-finline-functions ', 
                `-funswitch-loops '   and   `-fgcse-after-reload '   options. 
  
`-O0 ' 
                Do   not   optimize.      This   is   the   default.  
Last edited on
Are you guys sensitive to efficiency?

Yes, although the remained of the question is not directly related

what do you think about the -O2 mode? which mode do you prefer?

Based on the quote, you're talking about gcc. I find -O2 to be unnecessarily underpowered -- my typical set for that compiler is -O3 -march=native -flto (although, to be honest, the last time I used gcc in production, LTO wasn't yet available)
http://www.gentoo.org/doc/en/gcc-optimization.xml#doc_chap2_sect3
I have been using -O2 after reading this and other pages recommending -O2.

-O3 often gives larger executables which makes it less memory efficient and could impact the run-time performance.
Last edited on
Topic archived. No new replies allowed.