compiler-optimization 相关问题

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

为什么某些编译器(例如 gcc)要求您激活优化?为什么不默认运行它们?

标题基本上,为什么不默认运行所有可能的优化?

回答 1 投票 0

进程被杀死后如何获取.gcda文件?

我有一个带有 -fprofile-arcs 和 -ftest-coverage 的二进制版本。该二进制文件由进程监视器运行,该监视器将进程作为子进程生成。然后,当我想要进程退出时,我必须走

回答 4 投票 0

代码可以停止使用编译器优化[已关闭]

我正在使用 PellesC C 编译器。有时我的代码会随机停止工作。特定的语句可以触发它。例如,我将一个变量乘以 sin(c) (c 是一个双精度数),我的代码似乎

回答 2 投票 0

没有与 GCC 内存对齐

我正在处理一些数据包数据。我创建了结构来保存数据包数据。这些结构是由 python 为特定的网络协议生成的。 问题是由于事实...

回答 1 投票 0

如何从非限制指针创建限制指针

这是一个激励人心的例子 void foo(int *A, int *B, int *N) { 对于 (int k = 0; k < *N; k++) A[k] += B[k]; } Compiler can't vectorize this loop because it assumes that A and N alias. Addi...

回答 1 投票 0

我们可以使用 gcc 优化标志而不是 mpicc 吗?

我尝试通过传递 -O1 -O2 -O3 等优化标志来使用 mpicc 编译 MPI 程序。我想知道优化标志是否真的适用于 mpicc 以及 mpicc 是否支持所有

回答 2 投票 0

编译器优化和增量

编译器优化会导致这样的代码出现问题吗?具体来说,可以回复自动增量以按正确的顺序进行评估吗? uint 结果 = (数组[i++] << 16) | (ar...

回答 2 投票 0

包含对 Regex.Replace() 和/或 String.Format() 调用的静态字符串声明会在编译时得到优化吗?

根据文章“如何:连接多个字符串(C# 编程指南)”,字符串文字和字符串常量将在编译时连接成单个字符串。它进一步...

回答 1 投票 0

C++:我如何知道基类子对象的大小?

。 在这里,我正在讨论空基优化,MSalters 做出了这个有趣的评论: 没有一个班级可以有 sizeof(Class)==0,是否为空。但 我们正在具体讨论 ...

回答 3 投票 0

什么样的优化可以产生const参数?

我一直想知道,如果可以的话,总是更喜欢 const 参数是否是一个好习惯?一方面,您告诉编译器该变量不会在函数作用域内发生变化,因此我...

回答 1 投票 0

c++:“指向 const 的指针”所指向的对象是否被认为是不变的或只是不可修改的?

在以下情况下,“指向 const bool 的指针”参数 pbAbort 有意义,因为辅助函数不会修改 bool 对象。但是,我担心编译器可能会优化掉

回答 3 投票 0

编译器帮助其完成优化任务的提示

“生存发行版本”一文中的 const 和 volatile 章节让我想到编译器可以使用 const 关键字作为其优化工作的提示。 你还知道其他的吗

回答 7 投票 0

gfortran 对 cos(atan(x)) 执行不安全的数学优化

我正在研究一个问题,即使使用编译选项 -fno-fast-math 和 -fno-unsafe-math-optimizations,gfortran 在极少数情况下也会根据优化级别返回不同的结果,以便重新...

回答 1 投票 0

MSVC 会自动优化双核架构上的计算吗?

MSVC 会自动优化双核架构上的计算吗? 无效函数() { 计算1(); 计算2(); } 如果给出函数中没有关系的 2 计算,...

回答 5 投票 0

哪个免费 C 编译器提供了更好的优化选项?

您能给我一些 C 编译器之间的比较,特别是在优化方面吗?

回答 4 投票 0

除了 gcc 之外,还有哪些编译器可以对代码进行向量化?

GCC 可以自动“向量化循环”。 是否还有其他广泛可用的编译器可以执行相同的操作?

回答 9 投票 0

针对顺序内存访问的编译器嵌套循环优化。

我在矩阵乘法基准测试中遇到了一个奇怪的性能问题(MOSBENCH 套件中 Metis 中的 matrix_mult)。基准测试经过优化以平铺数据,以便活跃的工作服务...

回答 2 投票 0

为什么在 C 中分离编译和链接过程很重要?

我已经用 C 编程有一段时间了,我想知道为什么分离这个过程(编译和链接)很重要? 有人可以解释一下吗?

回答 5 投票 0

CPU 逻辑寄存器溢出

据我了解,现代编译器: 定位或生成对逻辑寄存器进行寻址的代码,这些逻辑寄存器在运行时动态重命名或映射到物理/硬件寄存器;还有更多

回答 1 投票 0

编译器(或JVM)知道优化这段代码吗?我该如何检查?

假设我有这门课 效用 { 公共静态无效 doSomething() { 如果(标志)foo(); 否则酒吧(); } public static void foo() { /* 做某事 */ } 公共静态

回答 2 投票 0

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