compiler-optimization 相关问题

编译器优化涉及调整编译器以减少运行时或对象大小或两者。这可以使用编译器参数(即CFLAGS,LDFLAGS),编译器插件(例如DEHYDRA)或对编译器的直接修改(例如修改源代码)来实现。

/ 与 / ]

编译以下代码时:int f(int i1,int i2){long l1 = i1;长l2 = i2;返回l1 * l2; }在x86-64上使用clang 10.1,在-O3下,我得到mov eax,edi imul eax,...

回答 1 投票 2

同时使用__attribute__((pure))和静态内联有任何好处吗?

我正在优化c程序,我想知道在同一函数声明中同时使用__attribute__((pure))和static inline是否有意义?

回答 1 投票 0

-O3与-Ofast优化之间的gcc差异

我只是阅读gcc手册,以了解-O3和-Ofast之间的区别。对于-O3 -O3还有更多优化。 -O3打开-O2指定的所有优化,也打开...

回答 1 投票 0

Apple clang -O1优化不够?

我在C中有此代码:int main(void){int a = 1 + 2;返回0; }当我在GCC 9.3.0_1中用-O0标志编译objdump -x86-asm-syntax = intel -d a.out时,得到:0000000100000f9e ...

回答 1 投票 0

升级后内环性能下降的原因是什么?

我有一个手推矩阵算法,该算法找到方阵右下方的最大数目(因此,迭代时,某些部分被“跳过”了)-存储为密集矩阵。之后...

回答 1 投票 14


诸如C#,Go,Rust,Scala之类的编程语言会被重写为自身,这是否会使它们变得太慢?

我正在为动态语言编写解释器,只是为了好玩。我有时会看看其他编译器中如何实现某些功能。虽然Rust或Haskell并不是很糟糕...

回答 1 投票 0

Crystal编译器中是否有march = native的等效项?

GCC和Clang支持一个名为-march = native的编译器选项,如果要针对当前计算机的体系结构进行优化,该选项将非常方便。生成的二进制文件可能不是可移植的,但没关系...

回答 1 投票 0

在Linux内核上,在包含kernel_fpu_begin()的文件上生成和优化FP / SIMD代码?

我知道禁止在内核中使用任何种类的浮点代码,并且我们绝不应该使用任何可以生成FP / SIMD指令的GCC标志,但是某些源代码呢(...

回答 1 投票 0

为什么当int大小是编译时常量时,GCC只能进行循环交换优化?

[当我编译此代码片段时(使用-Ofast -fnest-loop-optimize),gcc生成以源顺序遍历数组的程序集。但是,如果我取消注释行// n = 32767并将任何数字分配给...

回答 1 投票 2

什么是gcc编译器优化?

我可以想到3种情况,编译器可以表示为CSP,然后进行优化,但是我不知道是否这样做。我不假定特定的编译器优化标志,但是为了确保优化,...

回答 1 投票 -1

如何确定我的服务器正在使用哪个asm

确定服务器使用哪个asm的最直接方法是什么?例如,我有以下C程序:int main(void){...

回答 1 投票 0

VSCode禁用Arduino编译优化以进行调试

使用默认的VSCode Arduino配置,编译器将生成的代码优化为完全优化,因此使用Cortex-Debug进行调试几乎是不可能的,因为代码已被优化,并且...

回答 1 投票 0

使用新的CPU指令支持构建向后兼容的二进制文件

实现同一功能的多个版本的最佳方法是使用特定的CPU指令(如果在运行时进行了测试,或者如果没有则退回到较慢的实现?对于...

回答 1 投票 2

编译器是否检测到计算多次的变量?

我的问题涉及以下构造:uint16_t标志= 0x1f; while(curCase){if(((curCase-> i == i)&&(curCase-> j == j))标志^ = 0x10;如果((curCase-> i == ...

回答 2 投票 1

当编译器(例如,GCC)在C中内联函数时,是否保持操作顺序?

请考虑以下代码:#include int f1(){printf(“ foo”); } int f2(){int a; } int main(){int a = f1(),b = f2(); printf(“ \ n%d \ n”,a); printf(“ \ n%d \ n”,...

回答 1 投票 -5

此省略失败语言是强制性的吗?

#include int bar(){std :: pair p {123,“嘿……请不要为我做小字符串优化!” ...

回答 1 投票 2

优化析构函数的大小

我正在为嵌入式系统构建代码,并试图节省尽可能多的二进制空间。该代码用于解析协议(MQTT的价值),其中有许多数据包...

回答 1 投票 2

我使用直接初始化与std :: initializer_list时的不同指令

我正在研究各种初始化方法,并评估他们为各种用例及其性能影响提供的开发人员体验。在此过程中,我写了两个...

回答 1 投票 2

对于大型自动分配的数组C ++是局部变量还是成员变量?

我有一个操作,每秒将被多次调用(可能是一万次),这需要使用大型2D数组。每个操作彼此独立。是...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.