編譯器如gcc,可以指定不同的優化參數,在某些條件下,有些函數可能會被優化掉。
先寫一個簡單的測試文件:
用命令
gcc -g -c test.c
編譯成目標文件。
用 nm檢查函數符號:
$ nm -C test.o
00000000 T foo
現在使用 命令
gcc -g -c -O2 test.c
重新編譯。
再用 nm檢查:
$ nm -C test.o
00000000 T foo
還是能找到函數 foo.
這表明foo沒有被優化掉
現在把函數 foo改成靜態函數:
使用 -O2編譯,然后用 nm查找,會發現,此時 foo符號找不到了。
可見,靜態函數有可能會被GCC優化掉。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
優化
+關注
關注
0文章
220瀏覽量
23906 -
函數
+關注
關注
3文章
4331瀏覽量
62618 -
編譯器
+關注
關注
1文章
1634瀏覽量
49132
發布評論請先 登錄
相關推薦
MCS-51程序空間擴展原理及編譯器優化
討論了MCS-51系列單片機程序空間擴展的原理,包括硬件與編譯器兩個方面,并提出一種編譯器優化方案.該方案在Keil仿真器上檢驗并通過關健詞:C51
發表于 10-23 08:55
?100次下載
C編譯器及其優化
本章將幫助讀者在ARM處理器上編寫高效的C代碼。本章涉及的一些技術不僅適用于ARM處理器,也適用于其他RISC處理器。本章首先從ARM編譯器及其優化
發表于 10-17 17:22
?2次下載
如何使用英特爾編譯器優化Fortran、C和C ++
了解如何使用適用于Fortran *,C和C ++的英特爾?編譯器優化一些困難的循環。
示例選自經典的netlib.org矢量基準測試,這些測試不是由當前的英特爾編譯器自動優化的,但
基于C++編譯器的節點融合優化方法
LLVM是以C十十編寫的架構編譯器的框架系統,支持多后端和交叉編譯,用于優化程序的編譯時間、鏈接時間、運行時間和空閑時間。節點融合是一種簡單有效的優
發表于 06-15 14:29
?19次下載
編譯器的優化選項
一個程序首先要保證正確性,在保證正確性的基礎上,性能也是一個重要的考量。要編寫高性能的程序,第一,必須選擇合適的算法和數據結構;第二,應該編寫編譯器能夠有效優化以轉換成高效可執行代碼的源代碼,要做到
Triton編譯器功能介紹 Triton編譯器使用教程
Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發者添加新的編程語言特性和優化技術
Triton編譯器與其他編譯器的比較
Triton編譯器與其他編譯器的比較主要體現在以下幾個方面: 一、定位與目標 Triton編譯器 : 定位:專注于深度學習中最核心、最耗時的張量運算的優化。 目標:提供一個高度抽象、靈
Triton編譯器的優化技巧
在現代計算環境中,編譯器的性能對于軟件的運行效率至關重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優化技術,以確保生成的代碼既高效又適應不同的硬件架構。 1. 指令
評論