查看 GCC编译器优化选项的具体信息

gcc编译器优化 合理使用 GCC 优化选项可以显著提升程序性能,但需结合场景权衡速度、体积和调试需求。建议逐步启用优化并验证结果,确保代码正确性。在 GCC 中,优化是通过编译选项控制的,目的是提升程序性能(如运行速度、内存占用等),但可能增加编译时间或影响调试体验。:部分优化选项可能不可用(需检查编译器版本)。:未定义行为(UB)被优化暴露。:分模块编译或降低优化级别。或手动禁用某些优化(如。,应指定明确架构(如。:生成函数调用分析。 阅读详情

gcc -Q --help=optimizers -O1 >a.txt

 

 

 

The following options control optimizations:
  -O<number>                         
  -Os                                
  -falign-functions                   [disabled]
  -falign-jumps                       [disabled]
  -falign-labels                      [disabled]
  -falign-loops                       [enabled]
  -fargument-alias                    [enabled]
  -fargument-noalias                  [disabled]
  -fargument-noalias-anything         [disabled]
  -fargument-noalias-global           [disabled]
  -fasynchronous-unwind-tables         [enabled]
  -fbranch-count-reg                  [enabled]
  -fbranch-probabilities              [disabled]
  -fbranch-target-load-optimize     [disabled]
  -fbranch-target-load-optimize2     [disabled]
  -fbtr-bb-exclusive                  [disabled]
  -fcaller-saves                      [disabled]
  -fcommon                            [enabled]
  -fconserve-stack                    [disabled]
  -fcprop-registers                   [enabled]
  -fcrossjumping                      [disabled]
  -fcse-follow-jumps                  [disabled]
  -fcx-fortran-rules                  [disabled]
  -fcx-limited-range                  [disabled]
  -fdata-sections                     [disabled]
  -fdce                               [enabled]
  -fdefer-pop                         [enabled]
  -fdelayed-branch                    [disabled]
  -fdelete-null-pointer-checks         [enabled]
  -fdse                               [enabled]
  -fearly-inlining                    [enabled]
  -fexceptions                        [disabled]
  -fexpensive-optimizations           [disabled]
  -ffinite-math-only                  [disabled]
  -ffloat-store                       [disabled]
  -fforward-propagate                 [enabled]
  -fgcse                              [disabled]
  -fgcse-after-reload                 [disabled]
  -fgcse-las                          [disabled]
  -fgcse-lm                           [enabled]
  -fgcse-sm                           [disabled]
  -fgraphite-identity                 [disabled]
  -fguess-branch-probability          [enabled]
  -fhandle-exceptions                
  -fif-conversion                     [enabled]
  -fif-conversion2                    [enabled]
  -finline-functions                  [disabled]
  -finline-functions-called-once     [enabled]
  -finline-small-functions            [disabled]
  -fipa-cp                            [disabled]
  -fipa-cp-clone                      [disabled]
  -fipa-matrix-reorg                  [disabled]
  -fipa-pta                           [disabled]
  -fipa-pure-const                    [enabled]
  -fipa-reference                     [enabled]
  -fipa-sra                           [disabled]
  -fipa-type-escape                   [disabled]
  -fivopts                            [enabled]
  -fjump-tables                       [enabled]
  -floop-block                        [disabled]
  -floop-interchange                  [disabled]
  -floop-parallelize-all              [disabled]
  -floop-strip-mine                   [disabled]
  -flto-report                        [disabled]
  -fltrans                            [disabled]
  -fmath-errno                        [enabled]
  -fmerge-all-constants               [disabled]
  -fmerge-constants                   [enabled]
  -fmodulo-sched                      [disabled]
  -fmove-loop-invariants              [enabled]
  -fnon-call-exceptions               [disabled]
  -fomit-frame-pointer                [enabled]
  -foptimize-register-move            [disabled]
  -foptimize-sibling-calls            [disabled]
  -fpack-struct                       [disabled]
  -fpack-struct=<number>             
  -fpeel-loops                        [disabled]
  -fpeephole                          [enabled]
  -fpeephole2                         [disabled]
  -fpredictive-commoning              [disabled]
  -fprefetch-loop-arrays              [disabled]
  -freg-struct-return                 [disabled]
  -fregmove                           [disabled]
  -frename-registers                  [enabled]
  -freorder-blocks                    [disabled]
  -freorder-blocks-and-partition     [disabled]
  -freorder-functions                 [disabled]
  -frerun-cse-after-loop              [disabled]
  -freschedule-modulo-scheduled-loops     [disabled]
  -frounding-math                     [disabled]
  -frtti                             
  -fsched-critical-path-heuristic     [enabled]
  -fsched-dep-count-heuristic         [enabled]
  -fsched-group-heuristic             [enabled]
  -fsched-interblock                  [enabled]
  -fsched-last-insn-heuristic         [enabled]
  -fsched-pressure                    [disabled]
  -fsched-rank-heuristic              [enabled]
  -fsched-spec                        [enabled]
  -fsched-spec-insn-heuristic         [enabled]
  -fsched-spec-load                   [disabled]
  -fsched-spec-load-dangerous         [disabled]
  -fsched-stalled-insns               [disabled]
  -fsched-stalled-insns-dep           [enabled]
  -fsched2-use-superblocks            [disabled]
  -fschedule-insns                    [disabled]
  -fschedule-insns2                   [disabled]
  -fsection-anchors                   [disabled]
  -fsel-sched-pipelining              [disabled]
  -fsel-sched-pipelining-outer-loops     [disabled]
  -fsel-sched-reschedule-pipelined     [disabled]
  -fselective-scheduling              [disabled]
  -fselective-scheduling2             [disabled]
  -fset-stack-executable              [enabled]
  -fshort-double                     
  -fshort-enums                      
  -fshort-wchar                      
  -fsignaling-nans                    [disabled]
  -fsigned-zeros                      [enabled]
  -fsingle-precision-constant         [disabled]
  -fsplit-ivs-in-unroller             [enabled]
  -fsplit-wide-types                  [enabled]
  -fstrict-aliasing                   [disabled]
  -fthread-jumps                      [disabled]
  -fno-threadsafe-statics            
  -ftoplevel-reorder                  [enabled]
  -ftrapping-math                     [enabled]
  -ftrapv                             [disabled]
  -ftree-builtin-call-dce             [disabled]
  -ftree-ccp                          [enabled]
  -ftree-ch                           [enabled]
  -ftree-copy-prop                    [enabled]
  -ftree-copyrename                   [enabled]
  -ftree-cselim                       [enabled]
  -ftree-dce                          [enabled]
  -ftree-dominator-opts               [enabled]
  -ftree-dse                          [enabled]
  -ftree-forwprop                     [enabled]
  -ftree-fre                          [enabled]
  -ftree-loop-distribution            [disabled]
  -ftree-loop-im                      [enabled]
  -ftree-loop-ivcanon                 [enabled]
  -ftree-loop-linear                  [disabled]
  -ftree-loop-optimize                [enabled]
  -ftree-lrs                          [disabled]
  -ftree-phiprop                      [enabled]
  -ftree-pre                          [disabled]
  -ftree-pta                          [enabled]
  -ftree-reassoc                      [enabled]
  -ftree-scev-cprop                   [enabled]
  -ftree-sink                         [enabled]
  -ftree-slp-vectorize                [enabled]
  -ftree-sra                          [enabled]
  -ftree-switch-conversion            [disabled]
  -ftree-ter                          [enabled]
  -ftree-vect-loop-version            [enabled]
  -ftree-vectorize                    [disabled]
  -ftree-vrp                          [disabled]
  -funit-at-a-time                    [enabled]
  -funroll-all-loops                  [disabled]
  -funroll-loops                      [disabled]
  -funsafe-loop-optimizations         [disabled]
  -funsafe-math-optimizations         [disabled]
  -funswitch-loops                    [disabled]
  -funwind-tables                     [disabled]
  -fvar-tracking                      [enabled]
  -fvar-tracking-assignments          [enabled]
  -fvar-tracking-assignments-toggle     [disabled]
  -fvar-tracking-uninit               [disabled]
  -fvariable-expansion-in-unroller     [disabled]
  -fvect-cost-model                   [enabled]
  -fvpt                               [disabled]
  -fweb                               [enabled]
  -fwhole-program                     [disabled]
  -fwpa                               [disabled]
  -fwrapv                             [disabled]

 

查看GCC支持的机型:gcc -Q --target-help >b.txt

 

GCC编译器优化选项深入解析 本文深入探讨了GCC编译器中的多个编译优化选项,包括省略帧指针、DO循环优化、操作符名称、寄存器移动优化、同级调用优化、静态类初始化、可选诊断等。通过详细解释每个选项的功能和适用场景,为开发者提供了针对不同编译环境和需求进行性能调优的参考。 阅读详情

相关推荐

倍福TC3 PLC高速采集实战:如何用PLC-Recorder实现0.24ms级时间戳同步

本文详细介绍了倍福TC3 PLC与PLC-Recorder实现0.24ms级时间戳同步的工程实践方案。通过硬件拓扑设计、时间源选择优化、报文结构封装及同步验证方法,为工业自动化领域的高精度数据采集提供了可靠解决方案,特别适用于精密装配、激光切割等微秒级同步要求的场景。

weixin_29193359的博客 372

[转] GCC 中文手册

原文:http://blog.youkuaiyun.com/ruixj/article/details/1693953 使用gcc -v --help可以列出gcc的所有可选项 Reading specs from /usr/lib/gcc/x86_64-redhat-lin

code09的专栏 6619

AI Agent评估:指标、策略与最佳实践

AI智能体正逐渐融入到各个领域,从日常的对话助手到复杂的工作流程自动化,其应用范围不断拓展。然而,确保这些智能体能够可靠、高效地完成任务至关重要,这就使得AI智能体评估成为了人工智能发展过程中不可或缺的一环。本文将深入探讨AI智能体评估的指标、策略以及最佳实践,为读者全面解读这一关键领域。

llm_way的博客 3498

GCC编译优化和调试选项

在开启编译优化的开关时,GCC编译器的目的是:优化程序的性能和减少代码的大小,尽管会以牺牲编译时间和程序的可调试能力为代价。 对于不同的优化级别开启的对应优化开关可以通过gcc -Q -O2 --help=optimizers来查看对应的开启优化列表。 1. GCC优化选项 -O0 默认的优化选项,减少编译时间和生成完整的调试信息。 -O/-O1 这两个都是开启level 1的编译优化。开启编译优化会导致更长的编译时间,对于大函数还会消耗更多的内存空间。level1的编译优化下,编译器会尝试减少代

jinchengzhou的专栏 9498

Pyinstaller 打包 Pyzbar 时缺失 DLL 文件的排查与修复指南

本文详细解析了使用Pyinstaller打包Pyzbar库时,因缺失关键DLL文件导致程序闪退的常见问题。文章提供了从问题复现、错误诊断到最终修复的完整解决方案,核心在于通过修改.spec配置文件,手动将缺失的libzbar-64.dll等文件添加到打包过程中,确保生成的可执行文件能独立运行。

wdx012345的博客 504

Gromacs实战:从蛋白质-小分子对接到分子动力学模拟全流程解析

本文详细解析了使用Gromacs进行蛋白质-小分子对接和分子动力学模拟的全流程,包括文件准备、拓扑生成、复合物构建、溶剂化处理、能量最小化及平衡模拟等关键步骤。通过实战案例,帮助研究者验证药物分子与靶标蛋白的结合稳定性,提升分子动力学模拟的效率和准确性。

weixin_29216353的博客 384

Linux系统中使用GCC 对CPU参数优化代码编译

使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下: 1、优化原理: 在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。 2、注意事项 (1) 经过大量测试发现,在RedHat, CentOS系统中通常只能通过参数传递的方法进行编译优化,当然,如果愿意并且能够修改程序的Make

Qvip的专栏 1452

西门子精致面板TP1200 历史数据(历史数据、审计追踪) 移存到网络路径

TP1200 审计追踪

zhang080602的博客 5772

gcc编译选项说明

These machine-independent options control the interface conventions used in code generation.  Most of them have both positive and negative forms; the negative form of -ffoo would be -fno-foo.  In t

qiuen311的专栏 6016

调试GMS应用,报错“此设备未获得play保护机制认证”问题解决

不少同学在调试GMS相关应用时,需登录Google账号,有时会弹出如下通知。Google登录界面也会出现如下提示这个报错的原因是设备未通过Google认证,google服务器未配置荣耀设备的型号白名单导致国内网页有一些指导方法在鸿蒙\荣耀的设备上消除这个提示,但本质的问题没有解决,无法登录Google账号。

胡同老道的博客 2万+

nvidia jetson orin调试 MAX96712 serdes相机(SG2-AR0233C-GMSL2)

背景:想了解一下关于nvidia orin camera相关的模块,基于Drive Orin demo板的话,没有合适的相机,用 nvsipl框架点亮 GMSL相机不知如何下手,那么基于nvidia Jetson orin的话,目前国内有对应的转接板以及GMSL相机可以参考,基于此,那么本文详细记录一下关于nvidia orin的相关踩坑记录;需要Nvidia Jetson Orin开发板一个,MIPI转接板一个,MIPI转GMSL转接板一个,GMSL线束(fakra单线束),GMSL摄像头一个。

qq_30025621的博客 4446

backtrace on mips

for C: (1)正解: mipsel-linux-gcc backt.c -g -rdynamic -fexceptions 原因: -fexceptions Enable exception handling. Generates extra code needed to propagate exceptions. For some targets, thi

fish的小技术 1886

【2024/3/12 更新】Windows Server 2019 服务配置与管理汇总

本栏目一共介绍了17种Windows Server 2019 的服务配置与管理,为了方便大家阅读理解,特意总结了17种服务的一些内容。具体说明如下所示

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 2万+

GDB+GCC调试方式

GDB+GCC调试方式 gcc -g -gstabs+ -o main mian.c 如果使用了 for (int i=0;i<10;++i){ //code body } 需要增加编译选项 -std=c99.

hanzhi2008c的博客 180

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

GCC编译器优化选项分析及具体优化了什么

                起因:      目前项目使用nios IDE作为开发平台,其使用的编译器为gcc的交叉编译器。在设定编译条件时,在debug模式下生成的程序正常,但是在release模式下会出现LCD显示的开端显示不全,缺少一个字节或字的状况。为了了解具体为什么造成该问题,对两种模式下的配置做了对比,编译器皆为nios2-elf-gcc交叉编译器,debug模式编译器参数

ts_54eagle的专栏 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【GCC】gcc警告选项汇总--编辑中|gcc编译选项

参考原文:https://blog.youkuaiyun.com/qq_17308321/article/details/79979514 前言 警告:不是错误的,但是有风险或表明可能有错误。 请求或取消警告选项 (https://blog.youkuaiyun.com/qq_17308321/article/details/79979514) -fsyntax-only 检查代码中的语法错误,但除此之外不要做任何事情。 -w 禁止所有警告消息。 -Werror 使所有的警告进入错误。 -Werror= 将指定.

我的笔记本 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

#linux# gcc编译器优化选项的详细信息

Table of Contents 优化选项-O0 优化选项-O1 优化选项-O2 优化选项-O3 优化选项-OS 支持CPU类型target gcc编译器优化选项O0, O1, O2, O3, Os时我们有时想查看详细信息,可以使用以下命令查看 #linux# gcc编译优化-O0 -O1 -O2 -O3 -OS说明 https://blog.youkuaiyun.com/xiaoting451292510/article/details/104977828 gcc -Q --help=opt.

潇汀 1万+

GCC编译器的选项

本文介绍了GCC编译器的常用选项及其功能,主要分为预处理、编译、汇编、链接等阶段的控制选项。关键选项包括:-c(生成目标文件)、-S(生成汇编代码)、-E(仅预处理)、-o(指定输出文件名)。此外还涉及警告选项(-Wall)、调试选项(-g)、优化选项(-O0~-O3)以及链接器选项(-l、-static等)。文章还介绍了目录选项(-I、-L)用于指定头文件和库文件的搜索路径,并比较了静态链接与动态链接的区别

San_a_fish_of_dream的博客 2659

GCC编译器介绍及常见的编译选项使用方法

GCC编译器介绍及常见的编译选项使用方法

jackiendsc的博客 3915

linux 函数不让编译器优化,GCC编译器优化选项分析及具体优化了什么

GCC编译器优化选项分析及具体优化了什么起因:目前项目使用nios IDE作为开发平台,其使用的编译器为gcc的交叉编译器。在设定编译条件时,在debug模式下生成的程序正常,但是在release模式下会出现LCD显示的开端显示不全,缺少一个字节或字的状况。为了了解具体为什么造成该问题,对两种模式下的配置做了对比,编译器皆为nios2-elf-gcc交叉编译器,debug模式编译器参数为:-DA...

weixin_34518190的博客 1635

[转]GCC编译器选项及优化提示

很多弟兄可能都很关心如何优化编译自己的程序,虽然本人不赞成"骨灰"玩法,却也不得不承认这是掌握gcc的绝佳途径; 因此献上此帖,以供各位玩家参考,绝对原创噢 ============================ 大多数程序和库在编译时默认的优化级别是"2"(使用gcc选项:"-O2")并且在Intel/AMD平台上默认按照i386处理器来编译。 如果你只想让编译出来的程序运行在特定的平台上,就

嵌入式系统,linux,存储 2185

【Linux】GCC编译器(七)

GCC的通用性使得它在不同的操作系统和平台上都能够使用,包括Linux、Unix、macOS等,这使得开发者可以使用同一套工具在不同的环境下进行开发,提高了开发的效率和一致性。除此之外,GCC已经成为了许多开发环境和工具链的标准组件,许多集成开发环境(IDE)和构建工具都提供了对GCC的支持,这使得开发者可以更轻松地使用GCC进行开发和构建。此外,GCC拥有丰富的功能和选项,支持多种编程语言,包括C、C++、Objective-C、Fortran等,可以满足各种不同项目的需求,从小型工具到大型软件项目。

hdz_wiz_csdn的博客 2371

GCC 编译选项

1. 一般选项 Overall Option 选项 作用 -v 打印命令到stderr -E 要求gcc仅作预处理,不进行编译、汇编和链接。 -c 编译、汇编到目标代码,不进行链接。 -o 输出到指定文件。如果没有指定,则输出到a.out。 -v 会打印编译过程的详细信息,如完全的编译选项(包括gcc内部添加的编译选项),如头文件目录的搜索顺序等。 2. 语言选项 Language Option 选项 作用 -std= 编译时遵循的语言

一口Linux的专栏 4887

gcc/g++ 编译选项详解

它打开 -ffast-math、-fallow-store-data-races 和176 Using the GNU Compiler Collection (GCC) Fortran 特定的 -fstack-arrays,除非指定 -fmax-stack-var-size,和-fno-protect-parens。-fold-unroll-loops 意味着 -fstrength-reduce 和 -frerun-cse-after-loop。这是使用旧的循环展开器完成的,其循环识别基于前端的注释。

RandyOliver's House 5629

0编译器详解_S32DS GNU GCC编译优化选项与配置方法详解及S32 SDK代码编译优化选项设置建议...

内容提要引言1. GNU GCC编译器的优化选项详解1.1 何为编译器的优化选项1.2 编译器优化选项的工作原理1.3 GNU GCC编译器的-O/O1优化等级1.4 GNU GCC编译器的-O2优化等级1.5 GNU GCC编译器的-O3优化等级1.6 GNU GCC编译器的-O0优化等级1.7 GNU GCC编译器的Os优化等级1.8 GNU GCC编译器的-Ofast优化等级1.9...

weixin_29175469的博客 6685
上一篇: 我骑方轮车笑对坑洼人生
下一篇: bind-----------unresolved overloaded function type
yoyowinwin
博客等级 码龄19年 54粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值