compiler-optimization 相关问题

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

为什么gcc不创建新变量?

我有这样的代码: static const char kFmt[] = "某个字符串: - %s"; char buf[sizeof(kFmt) + 10]; snprintf(buf, sizeof(buf), kFmt, "字符串"); 看起来arm gcc 6.3.0 没有

回答 2 投票 0

这是一个 GCC 错误,它将 uint128_t 上的按位运算结果存储在位字段中

此代码适用于 GCC,优化程度低于 -O2 或在 clang 中。 constexpr uint16_t KEY_BITS = 70; constexpr 无符号 __int128 KEY_BITS_MASK = (((无符号 __int128) 1) << KEY_BITS) - 1;

回答 1 投票 0

在LLVM中,你能指定两个不同的代码路径会产生相同的结果吗?

我正在为嵌入式平台编写一个C库,该平台的固件有几个用于字符输出的例程。其中一个子例程是通用的 - 您加载 ASCII 字符...

回答 1 投票 0

在循环中,编译器真的会调用在每次迭代中返回相同值的函数吗?

我测试了一段代码(实际上不是这个,这里只是一个简化版本): #包括 #包括 自动 f() { //想象一下最后一行之前有很多指令 重新...

回答 1 投票 0

使用LibraryImport代替DllImport在编译时生成P/Invoke编组代码

我编写了一个获取目录树的函数。我目前正在使用 OS Api 来实现这一点。如果与 DLLImport 一起使用,一切都可以,但 Roslynator 告诉我这样的: “标记方法‘FindFirs...

回答 1 投票 0

Microsoft C++ 编译器:如何使用 /O2 禁用自动矢量化?

如何全局或针对特定 for 循环禁用自动矢量化 (SSE2),而不恢复到 MSVS 2010 中的 /Od? 我已经尝试了启用增强指令集的所有 3 个可能选项,包括...

回答 5 投票 0

当循环变量在溢出时未定义时,可以进行哪些优化?

本文提供了一个 C 代码示例片段,由于循环计数器类型未定义溢出,编译器可以对其进行优化。 这是带有注释的片段...

回答 1 投票 0

编译器的`-O0`选项和`-Og`选项有什么区别?

当我想要调试 C 或 C++ 程序时,我被教导使用 -O0 关闭优化,并使用 -ggdb 将符号插入到可执行文件中,这些符号针对使用 GNU gdb deb 进行了优化...

回答 2 投票 0

为什么调试执行顺序与c++中的代码顺序不匹配?

我是 C++ 新手。当我在Clion中调试时,我发现使用Step over(F8)的执行顺序与实际代码的顺序不符。到目前为止,我认为最可能的原因是编译器优化...

回答 1 投票 0

GCC 优化器从 5.1 开始就被破坏了吗?

我正在观看一个旧视频 Jason Turner:实用表演实践。 一开始就有一个 GCC 5.1 中优化代码的示例: #包括 int main() { 返回...

回答 0 投票 0

需要哪些编译器优化来优化此递归调用?

这里有两个版本的简单算术表达式求值器(游乐场链接:https://play.rust-lang.org/?version=nightly&mode=release&edition=2021&gist=

回答 0 投票 0

为了获得更好的性能,可能/不可能的语句应该放在哪里?

某些软件(通常是面向性能的,例如 Linux 内核、DPDK)具有用于影响分支预测的 C 帮助程序。 我有一个绝对简单的代码片段(假设我知道 >...

回答 1 投票 0

优化两个函数的组合

在发展我的编程技能时,我经常遇到这样的信息:“不要将这些函数链接在一起。相反,使用可以更快地完成这两个函数的内置函数。&q ...

回答 1 投票 0

为什么没有一个主要的编译器优化 != 要分配的值的这个条件移动?

我偶然发现了这个 Reddit 帖子,它是以下代码片段的一个笑话, void f(int& x) { 如果(x!= 1){ x = 1; } } void g(int& x) { x = 1; } 说这两个

回答 2 投票 0

当 memcpy 来自 char* 时,C++ 布尔值既不是 0 也不是 1,是否有未定义的行为?

#include #包括 #包括 #包括 #包括 使用命名空间标准; 布尔* library_pad; 矢量 my_p...

回答 0 投票 0

用 C 计算什么更快? (x==0) 还是 (0==x)? [重复]

我想知道用 C 语言计算什么更好: 如果(x==0) { // 一些代码... } 的 如果(0==x) { // 一些代码... } 我知道最后一个更好,以防程序员忘记第二个 &q...

回答 1 投票 0

为 C2 编译期间 Java 高内存使用生成编译器回放数据文件

C2 编译器线程在编译一些方法时正在分配高端内存(在本机内存跟踪的帮助下确认)。问题是随机重现的,无法用测试代码复制...

回答 1 投票 0

C++ 编译器为 AVX SIMD 代码给出不同的结果

我正在研究如何检测 SIMD 寄存器的哪些通道中浮点数是 +/- 无穷大或 +/- nan。在运行时看到一些奇怪的行为后,我决定把东西扔进 Godbolt

回答 0 投票 0

在哪些情况下编译器会在 C# 中生成额外的代码?

所以我一直在使用 ILSpy 和 dnSpy 检查一些程序集,并注意到各种编译器生成的类和方法。一些例子: 像 public Value { get; 这样的 Getter 语法放; } 变成了...

回答 0 投票 0

Visual Studio 2022,我可以控制如何为 arm64 编译生成立即值吗?

当我有以下代码时: int 值 2 = 0x11223344; VS2022 编译器(arm64)生成: StarFunction 程序 ... ldr w8,|value_label| ... ... ... 退役 |值标签| DCD

回答 1 投票 0

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