From 429a193386401a6da2eabd0416c1f062134f1063 Mon Sep 17 00:00:00 2001 From: cutie-deng Date: Tue, 3 Jun 2025 15:50:22 +0800 Subject: [PATCH] Add gcc features docs --- ...50\346\210\267\346\214\207\345\215\227.md" | 64 ++++++++++++++++++- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git "a/docs/zh/docs/GCC/GCC\344\274\230\345\214\226\347\211\271\346\200\247\347\224\250\346\210\267\346\214\207\345\215\227.md" "b/docs/zh/docs/GCC/GCC\344\274\230\345\214\226\347\211\271\346\200\247\347\224\250\346\210\267\346\214\207\345\215\227.md" index 50928ff22..e228c5e43 100644 --- "a/docs/zh/docs/GCC/GCC\344\274\230\345\214\226\347\211\271\346\200\247\347\224\250\346\210\267\346\214\207\345\215\227.md" +++ "b/docs/zh/docs/GCC/GCC\344\274\230\345\214\226\347\211\271\346\200\247\347\224\250\346\210\267\346\214\207\345\215\227.md" @@ -1,14 +1,14 @@ -# GCC 基础性能优化用户指南 +# GCC 优化特性用户指南 ## 简介 -编译器基础性能优化对于提高应用程序的开发效率、运行性能和可维护性都非常重要。它是计算机科学领域的一个重要研究方向,也是软件开发过程中的重要环节之一。GCC for openEuler 在通用编译优化能力的基础上,对中后端性能优化技术进行了增强,包括指令优化、向量化增强、预取增强、数据流分析增强等优化。 +编译器优化特性对于提高应用程序的开发效率、运行性能和可维护性都非常重要。它是计算机科学领域的一个重要研究方向,也是软件开发过程中的重要环节之一。GCC for openEuler 在通用编译优化能力的基础上,对中后端性能优化技术进行了增强,包括指令优化、向量化增强、预取增强、数据流分析增强等优化。 ## 安装与部署 ### 软件要求 -操作系统:openEuler 25.03 +操作系统:openEuler 24.03 LTS SP2 ### 硬件要求 @@ -219,3 +219,61 @@ Arm 相关指令合并优化,实现32位复杂组合的64位整形乘法逻辑 在选项中加入`-O3 -flto -flto-partition=one -fipa-reorder-fields -fipa-struct-sfc`即可,可在此基础上使用`-fipa-struct-sfc-bitfield`、`-fipa-struct-sfc-shadow`开启额外优化。 注:`-fipa-struct-sfc`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启以及开启`-fipa-reorder-fields`或`-fipa-struct-reorg>=2`的基础上才能使能。 + +### -fipa-struct-dfc + +#### 说明 + +动态压缩结构体成员,克隆程序路径并启发式压缩结构体大小,根据运行时检查选择运行路径,以提高 cache 命中率。 + +#### 使用方法 + +在选项中加入`-O3 -flto -flto-partition=one -fipa-reorder-fields -fipa-struct-dfc`即可,可在此基础上使用`-fipa-struct-dfc-bitfield`、`-fipa-struct-dfc-shadow`开启额外优化。 + +注:`-fipa-struct-dfc`选项,需要在`-O3 -flto -flto-partition=one`全局同时开启以及开启`-fipa-reorder-fields`或`-fipa-struct-reorg>=2`的基础上才能使能。 + +### -fipa-alignment-propagation + +#### 说明 + +分析并传播局部变量地址对齐值,优化按位与运算。 + +#### 使用方法 + +在选项中加入`-O3 -fipa-alignment-propagation`即可。 + +注:`-fipa-alignment-propagation`选项,需要在`-O3`开启的基础上才使能。 + +### -fipa-localize-array + +#### 说明 + +将由 calloc 分配的全局指针变量转换为局部变量。 + +#### 使用方法 + +在选项中加入`-O3 -fipa-localize-array`即可。 + +注:`-fipa-localize-array`选项,需要在`-O3`开启的基础上才使能。 + +### -fipa-array-dse + +#### 说明 + +分析数组在函数之间的传递情况以及在被调用函数中的使用情况,消除冗余的数组写入。 + +#### 使用方法 + +在选项中加入`-O3 -fipa-array-dse`即可。 + +注:`-fipa-array-dse`选项,需要在`-O3`开启的基础上才使能。 + +### -ffind-with-sve + +#### 说明 + +识别 `std::find` 函数调用,尝试使用 SVE 指令优化。 + +#### 使用方法 + +在选项中加入 `-ffind-with-sve` 即可。 -- Gitee