91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » EDA/PLD

C/C++語言的編譯器操作概述

發布時間:2009/1/9 0:00:00 訪問次數:1039

  1.集成的預處理器(integrated preprocessor)

  c/c++的預處理器集成在分析器工具中,可以提高代碼的編譯速度。用戶可以只進行預處理也可以將預處理列表 保存在文件中。tms320x28xx的c/c++編譯器包含杯準的預處理功能,這些功能主要完成下列預處理任務:

  ●宏定義和擴展;

  ● #include 文件處理

  ●條件編譯處理;

  ●其他碩處理標識(在原代碼文件中以#字符開始的特定的代碼段)。

  2.代碼優化

  編譯器采用先進的優化技術對c/c++源代碼進行優化,如圖1所示,從而減小代碼的尺寸,提高代碼的效率和運行 速度。c28x優化器充分利用c28x的結構特點對其代碼進行優化,生成更高效率的代碼。優化器是位于分析器和代碼 產生器中間的優化工具,最簡單的方法就是使用clzooo—v2s shell程序,并通過-o選項確定優化級別。


 圖1 帶有優化的編譯操作

  優化器總計有4個優化級別,分別對應不同的優化程序。

  (1) -o0

  ●簡化控制流圖(control flow graph);

  ●將變量分配到寄存器;

  ●完成循環旋轉(loop rotation);

  ●刪除未使用的代碼;

  ●簡化表達式和語句;

  ●內聯聲明未inline的函數。

  (2) -o1

  ●完成所有00的優化操作;

  ●運行局部復制/常數傳遞;

  ●刪除未使用的賦值語句;

  ●刪除局部公共表達式(local common expression)。

  (3) -o2

  ●完成所有-ol的優化操作;

  ●完成循環優化;

  ●刪除全局公共子表達式(global common expression);

  ●刪除全局未使用的賦值語句;

  ●如果使用o優化但不標注優化的級別,則系統默認為-o2優化。

  (4)-o3

  ●完成所有-o2的優化操作;

  ●刪除未使用的函數;

  ●當函數的返回值沒有用到時,簡化函數的返回形式;

  ●內聯小的函數;

  ●記錄函數聲明以便當優化調用時知道調用函數的屬性;

  ●當所有調用都傳遞一個相同的參數時,把這個參數直接放在函數體中,不通過寄存器/存儲器的方式傳遞這個參數;

  ●識別文件級變量特性。

  上述各級別的優化都是通過優化器來實現的,此外代碼生成器也要運行其他優化,尤其是和處理器相關的優化。而代碼生成器的優化操作總會被運行,與是否運行優化器沒有關系。

  歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)



  1.集成的預處理器(integrated preprocessor)

  c/c++的預處理器集成在分析器工具中,可以提高代碼的編譯速度。用戶可以只進行預處理也可以將預處理列表 保存在文件中。tms320x28xx的c/c++編譯器包含杯準的預處理功能,這些功能主要完成下列預處理任務:

  ●宏定義和擴展;

  ● #include 文件處理

  ●條件編譯處理;

  ●其他碩處理標識(在原代碼文件中以#字符開始的特定的代碼段)。

  2.代碼優化

  編譯器采用先進的優化技術對c/c++源代碼進行優化,如圖1所示,從而減小代碼的尺寸,提高代碼的效率和運行 速度。c28x優化器充分利用c28x的結構特點對其代碼進行優化,生成更高效率的代碼。優化器是位于分析器和代碼 產生器中間的優化工具,最簡單的方法就是使用clzooo—v2s shell程序,并通過-o選項確定優化級別。


 圖1 帶有優化的編譯操作

  優化器總計有4個優化級別,分別對應不同的優化程序。

  (1) -o0

  ●簡化控制流圖(control flow graph);

  ●將變量分配到寄存器;

  ●完成循環旋轉(loop rotation);

  ●刪除未使用的代碼;

  ●簡化表達式和語句;

  ●內聯聲明未inline的函數。

  (2) -o1

  ●完成所有00的優化操作;

  ●運行局部復制/常數傳遞;

  ●刪除未使用的賦值語句;

  ●刪除局部公共表達式(local common expression)。

  (3) -o2

  ●完成所有-ol的優化操作;

  ●完成循環優化;

  ●刪除全局公共子表達式(global common expression);

  ●刪除全局未使用的賦值語句;

  ●如果使用o優化但不標注優化的級別,則系統默認為-o2優化。

  (4)-o3

  ●完成所有-o2的優化操作;

  ●刪除未使用的函數;

  ●當函數的返回值沒有用到時,簡化函數的返回形式;

  ●內聯小的函數;

  ●記錄函數聲明以便當優化調用時知道調用函數的屬性;

  ●當所有調用都傳遞一個相同的參數時,把這個參數直接放在函數體中,不通過寄存器/存儲器的方式傳遞這個參數;

  ●識別文件級變量特性。

  上述各級別的優化都是通過優化器來實現的,此外代碼生成器也要運行其他優化,尤其是和處理器相關的優化。而代碼生成器的優化操作總會被運行,與是否運行優化器沒有關系。

  歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)



相關IC型號

熱門點擊

 

推薦技術資料

聲道前級設計特點
    與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
嘉黎县| 襄汾县| 汉沽区| 嘉定区| 勐海县| 潜江市| 富阳市| 肃宁县| 类乌齐县| 襄城县| 收藏| 邵阳县| 密云县| 通城县| 罗甸县| 九寨沟县| 乐陵市| 富民县| 墨竹工卡县| 房产| 依安县| 苍南县| 绍兴县| 洛阳市| 炎陵县| 翁牛特旗| 高邮市| 罗源县| 巨野县| 镇赉县| 宜章县| 兴隆县| 搜索| 来宾市| 庄河市| 乌兰浩特市| 平乡县| 靖西县| 丹东市| 宜宾县| 满城县|