0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编译器优化对函数的影响

如意 来源:CSDN 作者:CaspianSea 2020-06-22 14:58 次阅读

编译器如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

    浏览量

    23710
  • 函数
    +关注

    关注

    3

    文章

    3859

    浏览量

    61294
  • 编译器
    +关注

    关注

    1

    文章

    1569

    浏览量

    48598
收藏 人收藏

    评论

    相关推荐

    KEIL怎么禁止某个函数/某段代码被编译器优化

    有没有大佬知道,KEIL怎么禁止某个函数/某段代码 被编译器优化
    发表于 04-10 08:17

    Keil编译器优化问题

    大家好,我在使用单片机程序编译过程中,碰到了一些问题,恳请高手回答。具体描述如下: 当使用keil编译器编译过程中,设置为8级优化,产生的烧写文件,就可以在硬件平台上正常运行。但是如果
    发表于 12-18 16:39

    stm32编译器优化

    #550-D: variable "d" was set but never used描述:变量'd'定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量d所在的语句没有意义,编译器把它优化了.解决:仔细衡量
    发表于 08-24 07:46

    ARM编译器优化版本1.0

    ARM编译器armcc可以优化您的代码以实现小代码和高性能。 本教程介绍了编译器执行的主要优化技术,并解释了如何控制编译器
    发表于 08-28 07:11

    SIMD计算机的优化编译器设计

    利用处理器的相关资源,提高编译器优化性能和增强代码可适应性是SIMD处理器优化编译的关键。该文基于M语言和LS SIMD体系结构,结合现代编译器
    发表于 04-03 08:47 30次下载

    编译器_keil的优化选项问题

    keil编译器优化选项针对ARM,对STM32编译的一些优化的问题
    发表于 02-25 14:18 3次下载

    CodeVsionAVR编译器常用库函数简介

    CodeVsionAVR编译器常用库函数简介,很好的Proteus资料,快来下载学习吧。
    发表于 04-18 14:35 0次下载

    PICC编译器的库函数详解

    本章将详细列出PICC编译器的库函数。每个函数均从函数名开始,然后按照以下几个标题给出详细解释。
    发表于 10-14 14:17 0次下载

    C编译器及其优化

    本章将帮助读者在ARM处理器上编写高效的C代码。本章涉及的一些技术不仅适用于ARM处理器,也适用于其他RISC处理器。本章首先从ARM编译器及其优化入手,讲解C编译器优化代码时所碰到
    发表于 10-17 17:22 2次下载

    如何使用英特尔编译器优化Fortran、C和C ++

    了解如何使用适用于Fortran *,C和C ++的英特尔®编译器优化一些困难的循环。 示例选自经典的netlib.org矢量基准测试,这些测试不是由当前的英特尔编译器自动优化的,但
    的头像 发表于 11-08 06:02 2905次阅读

    关于volatile关键字对编译器优化的影响

    volatile关键字对编译器优化的影响
    的头像 发表于 02-28 17:15 2630次阅读

    控制IRQ和FIQ中断的编译器内部函数 基于Keil MDK

    控制IRQ和FIQ中断的编译器内部函数 - 基于Keil MDK
    的头像 发表于 02-29 16:45 2049次阅读

    虚拟机:编译器对C函数的名字修饰

    虚拟机:编译器对C函数的名字修饰
    的头像 发表于 06-22 11:44 2361次阅读
    虚拟机:<b class='flag-5'>编译器</b>对C<b class='flag-5'>函数</b>的名字修饰

    深度学习编译器之Layerout Transform优化

    继续深度学习编译器优化工作解读,本篇文章要介绍的是OneFlow系统中如何基于MLIR实现Layerout Transform。
    的头像 发表于 05-18 17:32 411次阅读

    编译器优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 393次阅读
    <b class='flag-5'>编译器</b>的<b class='flag-5'>优化</b>选项