亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

gcc都做了什么優化

2024-06-28 13:26:43
字體:
來源:轉載
供稿:網友
gcc都做了什么優化

直接上程序:

setjmp和longjmp是處理函數嵌套調用的,goto語句不能跨越函數,所以不選擇goto。

#include <setjmp.h>int setjmp(jmp_buf env); //返回值:若第一次直接調用則直接返回0,若從longjmp調用則返回下面的valvoid longjmp(jmp_buf env, int val);

對程序進行不帶優化編譯:

[henry@localhost c]$ gcc -g youhua.c -o youhua

對程序進行帶優化的編譯:

[henry@localhost c]$ gcc -g -O youhua.c -o youhua_after

對比上面結果可以看到,全局、靜態、volatile變量不受優化的影響。

  • 不進行優化時,上面定義的5個變量包括register變量都直接從內存中取值。
  • 進行優化后,register變量和局部變量gcc都是從寄存器中取的值。

gcc都做了什么優化呢?首先可以看到變量從內存取值優化到從寄存器取值。一下是manual的部分翻譯。

gcc有幾個優化等級:

O0,O1,O2,O3

-O0表示沒有優化,-O1為缺省值,-O3優化級別最高

'-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    延遲到必要時在函數棧種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       ## ’-O‘也打開-fomit-frame-pointer標志當機器                    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 '
`-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.進一步的優化。GCC會支持所有不涉及時間空間交換的所有支持的優化選項。當你加入-o2選項時,編譯器不會進行循環展開和函數內聯。與-O選項相比,這個選項會增加編輯時間和合成碼的性能。 `-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. 再一次的優化,-O3選項會添加所有-O2中添加的選項,并且添加`-finline-functions ',`-funswitch-loops' and `-fgcse-after-reload' 這三個選項 `-O0' Do not optimize.This is the default. -Os相當于-O2.5。是使用了所有-O2的優化選項,但又不縮減代碼尺寸的方法。 詳細的說明如下:Level 2.5 (-Os)The special optimization level (-Os or size) enables all -O2 optimizations that do not increase code size; it puts the emphasis on size over speed. This includes all second-level optimizations, except for the alignment optimizations. The alignment optimizations skip space to align functions, loops, jumps and labels to an address that is a multiple of a power of two, in an architecture-dependent manner. Skipping to these boundaries can increase performance as well as the size of the resulting code and data spaces; therefore, these particular optimizations are disabled. The size optimization level is enabled as: -Os這個特殊的優化等級,能夠實現-O2的全部不增加代碼段大小優化,他強調程序的大小而不是程序的運行速度,他包含了所有第二等級的優化,除了對齊優化,這些對齊優化在體系結構的依賴性的程序中,跳過一些線性結構,循環,跳轉和標簽的空間,到一個指數為2的多項式和的地址。跳過這些界限可以提高性能,以及由此產生的代碼和數據空間的大小,因此,這些特定的優化被禁用。

完!

參考:·[1]

apue


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩激情视频| 最近2019年中文视频免费在线观看| 久久精品影视伊人网| 免费不卡在线观看av| 精品视频久久久久久久| 欧美日韩在线视频一区| 亚洲视频欧美视频| 欧美夫妻性生活xx| 精品久久久国产精品999| 日韩不卡中文字幕| 精品久久久久久久久久| 国产日韩av高清| 日韩av片电影专区| 91色视频在线导航| 69影院欧美专区视频| 色综合视频一区中文字幕| 亚洲一级免费视频| 国产精品成人播放| 亚洲欧美精品一区二区| 色琪琪综合男人的天堂aⅴ视频| 欧美激情乱人伦| 岛国av一区二区在线在线观看| 亚洲网站在线观看| 欧洲中文字幕国产精品| 92看片淫黄大片欧美看国产片| 久久国产视频网站| 成人欧美一区二区三区在线湿哒哒| 久久在精品线影院精品国产| 亚洲品质视频自拍网| 精品丝袜一区二区三区| 三级精品视频久久久久| 日韩欧美在线视频日韩欧美在线视频| 午夜剧场成人观在线视频免费观看| 97在线看免费观看视频在线观看| 国产高清视频一区三区| 亚洲xxxx妇黄裸体| 欧美激情性做爰免费视频| 亚洲偷熟乱区亚洲香蕉av| 亚洲一区二区三区sesese| 亚洲精品美女视频| 自拍偷拍亚洲欧美| 国产精品中文在线| 国产欧美日韩精品丝袜高跟鞋| 国产福利成人在线| 欧美视频免费在线观看| 亚洲美女性生活视频| 日本午夜精品理论片a级appf发布| 亚洲最大的成人网| 亚洲美女又黄又爽在线观看| 色播久久人人爽人人爽人人片视av| 精品中文视频在线| 亚洲情综合五月天| 欧美激情视频在线免费观看 欧美视频免费一| 精品成人国产在线观看男人呻吟| 中文字幕亚洲欧美日韩在线不卡| 九九精品在线观看| 4p变态网欧美系列| 91精品综合久久久久久五月天| 久久精品国产亚洲精品2020| 日韩欧美在线视频免费观看| 亚洲美女激情视频| 日韩视频精品在线| 日产日韩在线亚洲欧美| 欧美国产亚洲精品久久久8v| 91精品综合久久久久久五月天| 久久精视频免费在线久久完整在线看| 国产精品h片在线播放| 久久久噜噜噜久噜久久| 国产午夜精品全部视频播放| 丝袜情趣国产精品| 国产精品美女www| 国产亚洲欧美日韩美女| 国产精品国产亚洲伊人久久| 91网在线免费观看| 国产精品久久久久久久久| 欧美电影在线观看网站| 欧洲美女免费图片一区| 日韩在线一区二区三区免费视频| 欧美日韩综合视频| 久久av红桃一区二区小说| 亚洲精品一区二区久| 成人a级免费视频| 91久久久精品| 91av成人在线| 亚洲色无码播放| 国产欧美日韩91| 日韩电影大片中文字幕| 欧美激情影音先锋| 5566日本婷婷色中文字幕97| 美女黄色丝袜一区| 国产精品美女在线观看| 亚洲第一男人av| 亚洲一区二区中文字幕| 欧美日韩在线视频观看| 欧美日韩成人在线视频| 精品亚洲一区二区三区四区五区| 欧美日韩aaaa| 51精品国产黑色丝袜高跟鞋| 中文字幕无线精品亚洲乱码一区| 国产亚洲人成网站在线观看| 88国产精品欧美一区二区三区| 4p变态网欧美系列| 国产日韩精品视频| 国产不卡在线观看| 激情懂色av一区av二区av| 亚洲综合色激情五月| 日韩av一区二区在线| 黑人与娇小精品av专区| 欧美裸体视频网站| 久久精品小视频| 91国产精品视频在线| 亚洲视频axxx| 国产精品igao视频| 欧美电影免费在线观看| 最近2019年好看中文字幕视频| 国产a∨精品一区二区三区不卡| 成人淫片在线看| 亚洲福利精品在线| 亚洲成人精品在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品wwww| 久久成人人人人精品欧| 亚洲欧美日韩天堂一区二区| 91精品国产91久久久久久久久| 精品久久中文字幕| 91九色国产社区在线观看| 2018中文字幕一区二区三区| 久久国产精品影视| 欧美激情网友自拍| 91欧美精品成人综合在线观看| 亚洲精品视频免费在线观看| 91九色在线视频| 久久精品一本久久99精品| 欧美激情视频三区| 日韩精品在线观| 亚洲精品一区二区在线| 欧美性视频精品| 亚洲国产日韩欧美综合久久| 亚洲性生活视频| 少妇高潮久久久久久潘金莲| 日韩成人中文字幕在线观看| 日韩中文字幕久久| 久久久噜久噜久久综合| 亚洲男人天堂网| 精品一区二区亚洲| 中日韩美女免费视频网址在线观看| 久久国产精品久久精品| 日韩精品中文字幕久久臀| zzijzzij亚洲日本成熟少妇| 国产精品人成电影在线观看| 亚洲乱亚洲乱妇无码| 欧美日韩精品国产| 岛国av一区二区在线在线观看| 精品久久久久人成| 美日韩丰满少妇在线观看| 少妇av一区二区三区| 在线视频国产日韩| 国内精品视频久久| 亚洲欧美制服综合另类| 国产精品麻豆va在线播放| 丝袜一区二区三区| 深夜福利一区二区| 国内免费精品永久在线视频| 丝袜美腿亚洲一区二区|