标签[compiler-optimization]

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

-1
0回复
21

用于“&”和“ &&”表达式的C ++编译标准?

我有一个评估4个以上简单算术比较以返回布尔值的核心函数。 这将在一个非常大的循环中被称为O(N ^ 2)次,并且基于返回的单个条件分支。 如果函数写为: 它会使用“&”生成3个条件分支,而不是0
0
0回复
25

关于如何运行一组优化算法的经验法则

我的编译器支持以下常见的优化算法: 持续传播。 复制传播。 常见子表达式消除。 代数简化。 不断折叠。 消除无用的代码。 我有一个要优化的程序。 我想知道运行这些优化的最
2
0回复
28

普通子表达式消除何时适用?

foo()执行如下简单的数学计算: 如果成对的所有项目都相同,那么Java编译器可以使用Common子表达式消除来对此进行优化吗? 还是有另一个优化发生? 我问,因为发现更多的成对值相同时,
1
0回复
64

有没有办法告诉编译器某些函数的返回值不会改变?

我使用库libA,而库又使用库libB。 现在,libB为“当前macguffin”提供了线程本地索引。 其他线程(除非它们开始写入内存中的任意位置)不能更改当前线程的“当前macguffin”。 现
2
2回复
140

Dart编译器是否可以推断const构造函数的用法?

我的想法是,如果dart能够自动执行,则将使用const构造函数,以解释该假设,假设我们有一个已经具有const constructor的小部件,例如: class Retry extends Sta
-3
0回复
17

有人知道三个地址代码生成器吗? [关闭]

已关闭。 这个问题需要细节或说明。 它当前不接受答案。
3
2回复
100

const char编译器优化

我在两个不同的文件中有全局const char定义: f1: f2: 想了解是否在最终二进制文件中对此进行了优化以占用内存中的公共空间。 这是在海湾合作委员会的背景下
2
1回复
61

如何使用HotSpot JVM @DontInline批注?

我目前正在努力优化一种特殊的方法,不幸的是,JVM内联了这种方法,从而阻止了该方法的正确向量化。 我注意到,有一个注释禁止内联,即jdk.internal.vm.annotation.DontInli
1
0回复
43

哪种类型的代码适合JIT优化?

我正在使用LLVM API,并且对内置JIT的执行引擎(与静态编译的目标代码相比)的性能感到好奇,以及执行引擎是否更易于在开发过程中使用。 显然已经看到了这个问题,JIT LLVM可以为特定类型的代码
0
0回复
22

省略回报会增加构建时间吗?

使用一些迅速功能的语法会使构建时间更长。 例如,据说使用类型推断会大大增加构建时间。 这是因为编译器“推断”类型仅会读取所写内容。 我想知道是否省略“返回”会增加构建时间,因为编译器必须以某种方式知道
2
1回复
66

到达定义分析-我的解决方案正确吗

我被要求为以下代码编写到达定义,我想知道我的解决方案是否正确? 我是否在正确的轨道上? 我真的很感谢任何帮助或提示。 谢谢你。 代码: 步骤#1:查找块并标记 步骤#2:查找每个块的GEN和
14
2回复
529

为什么标准的“ abs”功能比我的快?

我想尝试制作自己的绝对值函数。 我认为,计算绝对值的最快方法是简单地屏蔽符号位(IEEE 754中的最后一位)。 我想将其速度与标准abs功能进行比较。 这是我的实现: // Union used f
-2
2回复
64

C#空锁块是否被“优化”了吗?

我找不到有关C#编译器或JIT是否删除其中没有代码的lock语句的任何信息。 这将始终生成并执行Monitor.Enter和Monitor.Exit调用吗? 我要执行的操作(经过简化的版本)(是的
2
1回复
45

使用sizeof,strlen等重复计算

假设我的阵列很大,并且正在执行以下操作: 当然,不应每次都计算东西的sizeof因此应该这样: 我的问题是,是否可以假设任何编译器都会自动执行上述优化,所以我使用哪种方法都没有关系? 或者我应
0
0回复
36

需要我们使用一些与asm volatile比较的运行时内存防护机制

假设我们有一段这样的C ++代码: 据我了解,编译器可以优化代码,这意味着只有在不违反常规规则的情况下,编译器才能对执行顺序进行重新排序。 例如,下面代码的执行顺序 可以重新排序为 因此,
0
1回复
51

AOT和IVY到底有什么区别?

在搜寻了有关Ivy和AOT的信息后,我感到困惑,谁真正在编译代码?
3
1回复
69

嵌套作用域如何影响堆栈深度?

我尝试使用MSVC将以下c代码编译为具有(CL TestFile.c / Fa / Ot)和没有优化(CL TestFile.c / Fa)的程序集,结果是它们产生相同的堆栈深度。 为什么编译器在知
2
0回复
58

为什么仅当迭代指针未存储在结构中时,VS C ++ 2017编译器才使用SSE优化?

动机很简单:我遍历两个uint64数组,位及其值,然后将结果存储在第三个数组中。 但是,在我概括了接受结构形式的输入的解决方案之后,代码大大降低了速度,并且我发现生成的程序集是完全不同的。 我的问题是
4
2回复
86

gcc如何将1和100的和优化为5050

我用gcc -O3 -S ac编译了以下c程序: #include <stdio.h> int main() { int sum = 0; for (int i = 0;
0
3回复
68

开关和if / else的哪种组合更快,为什么?

我有两个条件。 一个具有两个可能的值,另一个具有更多的值(在此示例中,我写了3个案例,但最多可以有8个案例)。 哪个代码运行速度更快,错误提示更少(更准确)? 代码a) 代码b) 请告诉我您

1 2 3 4 5 6 7 8 9 10 下一页