compiler-optimization 相关问题

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

在GCC中,什么是“树优化”与“RTL优化”?

当我向GCC提交关于错过优化的错误时,我总是不知道是否应该在“rtl-optimizations”或“tree-optimizations”下提交它。我查看了GCC上的组件页面......

回答 1 投票 2

const是否允许(理论上)优化?

考虑这个片段:void foo(const int&); int bar(); int test1(){int x = bar(); int y = x; FOO(X);返回x - y; } int test2(){const int x = bar(); const int y = ...

回答 2 投票 10

MinGW编译速度过慢

几年前,我开始在Windows 7和Linux Ubuntu中使用Qt,并且它总是可以快速编译,而MinGW用于Windows。但在过去几年左右,也许......

回答 1 投票 4

直接包含模板比单独实例化更慢

我有一个简单的模板标题包含3个模板化函数(没有声明,只是定义和标记静态内联),其中两个函数长5000行。这些长期的功能是......

回答 2 投票 -1

多址访问位域而不改变价值,性能?

给定一个带有位字段的结构,例如:struct {long f0:6;长f1:6;长f2:2;长f3:2; S;如果以下代码之间存在性能差异:1 -...

回答 1 投票 2

双重问号('??')与分配相同的var时的比较

参考以下SE答案。当写A = A ?? B;它与if(null!= A)A = A相同;否则A = B;这是否意味着if(null == A)A = B;会优先考虑,......

回答 5 投票 14

确定预处理器中的优化级别?

-Og是一个相对较新的优化选项,旨在改进应用优化时的调试体验。如果用户选择-Og,那么我希望我的源文件激活备用...

回答 2 投票 15

为什么我们使用volatile关键字? [重复]

可能重复:C ++:什么时候有挥发性关键字帮你?我从来没有用过它,但我想知道为什么人们会用它?它到底是做什么的?我搜索了论坛,我发现它只是C#或...

回答 2 投票 317

命名空间的成本

在c ++中定义命名空间的成本是多少?我特别指的是编译时/运行时增加和/或内存占用。假设我有一个带有头文件和.cpp的简单程序...

回答 3 投票 4

不同的优化级别可以导致功能不同的代码吗?

我很好奇编译器在优化时的自由度。让我们把这个问题限制在GCC和C / C ++(任何版本,任何标准版本):是否有可能编写具有...的代码?

回答 13 投票 44

Java编译器用+连接替换StringBuilder

这是一些简单的Java代码:String s = new StringBuilder()。append(“a”)。append(“b”)。append(“c”)。toString();我用JRE 1.6编译它,我在反编译的类文件中观察到以下内容:...

回答 4 投票 3

编译器优化:将变量从堆栈移动到寄存器

这是代码:#include #包括 #包括 uint64_t uint5korr(const std :: byte * p){uint64_t result = 0; std :: memcpy(&result,p,5);回来......

回答 2 投票 3

为什么clang用-O0生成效率低的asm(对于这个简单的浮点和)?

我在llvm clang Apple LLVM版本8.0.0(clang-800.0.42.1)上反汇编代码:int main(){float a = 0.151234;浮动b = 0.2; float c = a + b; printf(“%f”,c);我编译没有......

回答 1 投票 1

简单构造函数的复杂编译器输出

我有一个带有两个64位整数成员的struct X和一个构造函数:struct X {X(uint64_t a,uint64_t b){a_ = a; b_ = b; } uint64_t a_,b_; };当我看到......

回答 3 投票 3

/ Ox和/ O2编译器选项有什么区别?

Microsoft的C ++编译器(cl.exe,包含在Visual Studio中)提供了几个优化开关。大多数人之间的区别似乎不言自明,但我不清楚......

回答 2 投票 63

C中的浮点运算是关联的吗?

加法在数学上保持关联属性:(a + b)+ c = a +(b + c)在一般情况下,此属性不适用于浮点数,因为它们表示...中的值

回答 3 投票 22

函数 - 本地lambda是如何有效地由C ++编译器内联的?

背景作为一种组织策略,我喜欢在复杂的函数中定义函数局部lambda。它有利于封装多步逻辑,重复操作等(各种...

回答 1 投票 4

ANTLR无法识别错误的关键字

我是ANTLR的菜鸟。我正在构建一个简单语言的编译器,但我不明白为什么,如果我写错了keybord,编译器不会给我正确的错误。那是我的语法:......

回答 1 投票 0

C / C ++编译器是否会通过重用最近计算的函数结果来优化代码?

假设我有一个函数double F(double x),让我们假设为了这个例子,对F的调用是昂贵的。假设我写了一个函数f来计算F的平方根:double f(...

回答 3 投票 1

C ++编译器是否会使用少量术语内联for循环?

假设我有一个Matrix5x5类(带有适当重载的索引运算符),我编写了一个方法跟踪来计算其对角元素的总和:double Matrix5x5 :: trace(void){double t(0 ....

回答 2 投票 -2

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