编译器如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浏览量
23928 -
函数
+关注
关注
3文章
4338浏览量
62769 -
编译器
+关注
关注
1文章
1636浏览量
49175
发布评论请先 登录
相关推荐
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. 指令
评论