查看 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循环优化、操作符名称、寄存器移动优化、同级调用优化、静态类初始化、可选诊断等。通过详细解释每个选项的功能和适用场景,为开发者提供了针对不同编译环境和需求进行性能调优的参考。 阅读详情

相关推荐

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 334

[转] 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

别再怕非观测区了!手把手教你用移相法搞定PMSM单电阻FOC的电流重构难题

本文详细解析了永磁同步电机(PMSM)单电阻FOC系统中非观测区的电流重构难题,重点介绍了移相法的工程实践。通过STM32平台的具体实现和调试指南,帮助工程师有效解决相电流检测中的采样窗口不足问题,提升系统稳定性和性能。

weixin_27252001的博客 433

GCC编译优化和调试选项

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

jinchengzhou的专栏 9498

HSPICE用户必看:用Sigrity Broadband SPICE解决复杂封装建模的3个技巧

本文为HSPICE用户分享了三个使用Sigrity Broadband SPICE解决复杂封装建模难题的实战技巧。通过将宽频带S参数高效转换为时域SPICE模型,能显著提升仿真速度、保障收敛性,并精准分析谐振、返回路径不连续及超多端口PDN等关键问题,助力实现高效稳定的系统级信号与电源完整性分析。

metal的博客 601

使用 ANSYS 实现铸造、凝固和熔炼的高级解决方案

凭借其强大的有限元分析 (FEA) 和计算流体动力学 (CFD) 功能,ANSYS 可以准确预测模具内的热和流体流动行为。总之,ANSYS 是铸件凝固和熔化领域的关键工具。其全面的仿真功能、工艺优化功能、材料特性分析和用户友好的界面使其成为旨在创新和改进制造工艺的工程师不可或缺的工具。通过利用 ANSYS,各行各业可以在铸造业务中实现更高的质量、效率和成本效益,从而为先进的制造解决方案铺平道路。ANSYS是一款领先的工程仿真软件,提供强大的功能来建模和优化这些复杂的热过程,从而显著提高生产效率和质量。

jkh920184196的博客 2108

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

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

Qvip的专栏 1452

Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题

最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下。 Tushare简介 Tushare是一个免费、开源的python财经数据接口包。拥有如股票、基金、期货等行情数据,公司财务、基金经理等基本面数据,以及债券、外汇、行业、大数据、区块链。Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,因此非常方便...

sinat_40875078的博客 1万+

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

10分钟快速搭建OpenClaw(基于Windows+飞书)

OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。

Hello, New World! 2927

一文读懂世界模型(World Model):AI的“数字大脑”,通往AGI的核心基石

世界模型正成为AI领域的关键技术,它让AI在虚拟环境中模拟物理世界规律并预测行动后果,从而减少现实试错成本。2018年Ha和Schmidhuber提出的VAE+RNN架构奠定基础,2022年后自监督学习推动快速发展。当前世界模型分为潜空间、生成式、强化学习和对象中心四大流派,已在机器人、自动驾驶、工业仿真等领域落地应用。尽管面临长时序预测误差等挑战,未来将向多模态建模、大模型融合等方向发展,成为实现具身智能和通用人工智能的核心基石。

m0_38116472的博客 808

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

面试提问:数据开发中如何通过指标拆解来指导SQL编写?(附拆解模板)

摘要:指标拆解是一种高效的数据分析方法,通过将复杂业务指标分解为可执行的原子指标,指导SQL查询的编写。核心步骤包括:明确指标定义、拆解原子指标、定位数据源、确定分组维度、构建中间表。文章提供了指标拆解模板和实际案例(如用户留存率计算),并总结了拆解带来的5大好处:逻辑清晰、易于调试、可复用、降低错误率、便于协作。最后强调"一定义、二拆解、三定位、四分步、五合并"的口诀,适用于数仓开发、BI报表等场景。

石榴姐yyds 267

GDB+GCC调试方式

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

hanzhi2008c的博客 180

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

ts_54eagle的专栏 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【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万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

#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、付费专栏及课程。

余额充值