提问者:小点点

别名信息可以简化此程序集吗


我有以下代码:

void palette(char* in, int* out, int* palette, int n) {
    for(int i = 0; i < n ; ++i)
    {
        int value = palette[in[i]];
        out[i] = value;
    }
}

下面是生成的编译器代码https://godbolt.org/z/x3nvrw我想知道是否有可能生成更好的汇编,因为输入和输出数据指向不同的内存位置。是否有一些“别名”信息我可以注入到代码中,以便生成更好的程序集?(神箭的输出我实在看不懂)

编辑:我的问题实际上是:

  • 知道没有别名,我可以手动编写更快的汇编吗?/li>
  • 如何使标准(或非标准)C++代码生成此程序集?/li>

共1个答案

匿名用户

null

null

根本原因是缓存在使用并行硬件分类别名方面非常有效,并且可以以许多GB/秒的速率进行分类。