---
title: 选项 -falias-analysis-expand-ssa
description: "增强别名分析能力，有效识别并排除非循环体中相邻数组元素访问的虚假数据依赖关系，促成相邻元素的连续操作被安全矢量化，提升代码执行效率。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0048.html
sourcePath: /source/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0048.html
indexId: af609f45324f4e8a7b9238f96a47d15fe18c0b3941010302ad34031ba1b824f271
---
# 选项 -falias-analysis-expand-ssa

#### 说明

增强别名分析能力，有效识别并排除非循环体中相邻数组元素访问的虚假数据依赖关系，促成相邻元素的连续操作被安全矢量化，提升代码执行效率。


#### 使用方法

需开启 -O2 或以上优化等级，同时增加编译选项 -falias-analysis-expand-ssa。


#### 结果

测试用例如下：


```
void f(double *p, long i)
{
    p[i+0] += 1;
    p[i+1] += 1;
}
void g(double *p, long i)
{
    double *q = p + i;
    q[0] += 1;
    q[1] += 1;
}
```

测试命令：

```
gcc -O2  -fdump-tree-slp-details -falias-analysis-expand-ssa test.c -S -o test.s
```

图1 选项未打开


图2 选项已打开

选项未打开时，对于函数f，编译器认为p[i+0]和p[i+1]互为别名，存在依赖关系，矢量化失败。选项打开后，矢量化成功
