日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
C6000軟件優(yōu)化經驗總結(1)
C6000軟件優(yōu)化經驗總結(1)
 更新時間:2008-8-4 5:05:25  點擊數(shù):4
【字體: 字體顏色


    

一、c6x的編譯的常用選項

(一)c6x的編譯程序為“cl6x.exe”使用的方法

Cl6x [options] [filenames]

Cl6x:  編譯程序

Options: 編譯選項

Filenames: C或匯編源文件

說明:

編譯選項是一個字母或者兩個字母,對大小寫不敏感。

編譯選項的前面需要有一個“-”符號。

一個字母的選項可以合并在一起。比如“-sgq”與“-s -g -q”相同。

兩個字母的選項如果第一個字母相同也可以合并在一起。比如“-mgt”與“-mg -mt”相同。

(二)有關優(yōu)化的選項

-mt:表示在程序中沒有使用alaising技術,這使得編譯器可以進行比較好的優(yōu)化。

-o3:對文件級別進行最強的優(yōu)化,一般在編譯時應該使用這個選項。但是在個別情況下使用這個選項優(yōu)化程序可能會出現(xiàn)錯誤(-o2有相同現(xiàn)象,- o0和-o1不會出現(xiàn)錯誤)。可能是在優(yōu)化循環(huán),組織流水線的時候發(fā)生錯誤。如果有這種現(xiàn)象出現(xiàn)可以同時使用-g選項,程序優(yōu)化就不會出現(xiàn)錯誤,但是優(yōu)化效果會下降。另外可以調整程序的表達方式,可能會避免編譯器發(fā)生錯誤。

-pm:在程序級別進行優(yōu)化?梢詫⑺晕募(lián)合在一起進行優(yōu)化,主要有去掉沒有被調用的函數(shù)、總是常數(shù)的變量以及沒有使用的函數(shù)返回值。建議由程序員自己進行這種優(yōu)化工作。使用這個選項在win98下編譯可能會出現(xiàn)找不到編譯程序的情況。

-ms0:不使用冗余循環(huán)進行優(yōu)化,減小程序的大小。一般情況下這個選項對程序大小的優(yōu)化作用不明顯。

-mh[n]:去掉流水線的epilog,減小程序的大小。這個選項的作用比較明顯。但是有可能出現(xiàn)讀取地址超出有效范圍的問題,所以要在數(shù)據(jù)段的開始和結尾處增加一些pading,或者在分配內存時保證數(shù)組的前面和后面一段范圍內都是有效的地址?蛇x的參數(shù)n給出這種pading的長度字節(jié)數(shù)。

(三)保留編譯和優(yōu)化信息的選項

-k:保留優(yōu)化后生成匯編語言文件。

-s:匯編語言文件中加入優(yōu)化信息,如果沒有則加入C語言源程序作為注釋。

-mw:在匯編語言文件加入軟件流水線信息。

(四)有關調試和剖析的選項

-g:允許符號調試,在“out”文件中包含符號信息和行號信息,可以在c語言級別進行調試和剖析。使用聯(lián)合使用-g、-mt和-o3可以保證能夠進行符號調試的情況下最大限度的優(yōu)化。

-mg:允許profile優(yōu)化后的程序。 在“out”文件中包含符號信息和很少的行號信息。允許在c語言的函數(shù)基本進行剖析。

如果聯(lián)合使用這兩個選項,-g選項可能被忽略,結果與只用-mg相同。

(五)其它類型

-mln:生成大內存模式的程序。

 -ml0:缺省情況下將集合變量(數(shù)組和結構)作為far型。

 -ml1:缺省情況下將全部函數(shù)作為far型

 -ml2: 等于-ml0加-ml1

 -ml3: 缺省情況下將全部數(shù)據(jù)和函數(shù)作為far型

(六)建議使用的編譯方式

Cl6x -gk -mt  -o3 -mw -ss “filename”

方式1用于程序的調試,這種方式具有比較強的優(yōu)化能力,并且支持符號調試。在編譯的過程中不會發(fā)生錯誤。由于生成的“out”文件中包含了符號信息和行號信息,所以比較大。

Cl6x -k -mgt  -o3 -mw -ss “filename”

方式2用于程序的剖析(profile),這種方式的優(yōu)化能力幾乎最強(絕大多數(shù)情況下與方式3相同),并且支持對程序進行profile。文件中只包含了符號信息和很少的行號信息,所以“out”文件比較小。

Cl6x -k -mt  -o3  -mw -ss “filename”

方式3用于最終的發(fā)行版本程序,可以對程序進行最強的優(yōu)化,并且去掉了全部的符號和行號信息,所以“out”文件比較小。

由多個文件組成的程序應該編寫makefile,將編譯參數(shù)放在該文件中,并在其中說明使用的編譯器的版本號。

(七)連接參數(shù)

-h(huán)eap:指定堆的大小

-stack: 指定棧的大小

連接的各種選項應該統(tǒng)一放在“cmd”文件中

二、雙重循環(huán)和多重循環(huán)的優(yōu)化總結 

        雙重循環(huán)多重循環(huán)看起來比較復雜,但實際上多重循環(huán)優(yōu)化方法比較簡單,就在于一個字:“拆”,一旦完成這一步之后,多重循環(huán)就成為單層循環(huán),優(yōu)化就可以按照普通的單層循環(huán)來做了。

        多重循環(huán)的特點是在優(yōu)化器優(yōu)化時只在最內層循環(huán)中形成一個pipeline,這樣循環(huán)語句就不能充分利用C6的軟件流水線,而且對于內部循環(huán)的次數(shù)較少的情況,消耗在prolog和eplog上的cycle數(shù)也是不可忽視的。針對這種狀況可以考慮將多重循環(huán)拆開形成一個單層循環(huán),可以拆外層循環(huán)也可以拆內層循環(huán),一般視具體情況而定。這樣就可以充分利用優(yōu)化器構成的Pipeline。如下例:

   void fir2(const short input[], const short coefs[], short out[])

   {

     int i, j;

     int sum = 0;

     for (i = 0; i < 40; i++)

     {

         for (j = 0; j < 16; j++)

              sum += coefs[j] * input[i + 15 - j];

         out[i] = (sum

[1] [2] [3] [4]  下一頁
  • 上一篇: 磁性墨水文字圖形識別傳感器
  • 下一篇: AD8361—0.1~2.5GHz真功率有效值響應器件及其使用方法
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經營許可證:浙B2-20080178-1